Fix implementation of the DFP integer operands.

The implementation of integer operands doesn't really match the documentation
for the Iop. Take for example Iop_ExtractExpD64. It is documented as
D64 -> I64 but the implementation of the UNARY is defined as
UNARY(Ity_D64, Ity_D64). The result is an integer that is stored in an integer
format in a floating point register. On the IBM s390 however, the architecture
stores the integer value in a general purpose register (GPR) not a floating
point register. This issue exists with the implementation of 11 Iops where the
PPC implementation has either a source or destination whose value is an integer
but the value is stored in a floating point register in an integer format. After
reviewing the PPC implementation with the s390 developer, it was agreed the
cleanest way to fix this is to change the PPC implementation. The BINOP will be
changed to be consistent with the Iop description. This means the PPC
instruction implementation of the PPC instruction in guest_ppc_toIR.c will need
to reinterpret integer source operands as integers which will move the value
from a floating point register to an integer register before calling binop().
The underlying PPC implementation of the unop() for the specific Iop will also
need to change to move the value from the integer register back to the floating
point register so the native instruction can be issued with the integer value
in a floating point register. It was decided that making the changed in PPC,
rather then having the s390 reinterpret integers as DFP and then move the value
back to an integer register, was preferable as it makes the implementation of
the unop(), binops(), triop() consistent with the definition of the Iop.

This patch also includes the needed changes for the vbit tester.  The Iop
definitions in memcheck/tests/vbit-test/util.c had to be updated to be consitent
with the changes in the Iops as documented below.  Also, the function mkLazy3()
in memcheck/mc_translate.c had to be updated to handle the I32 x I8 x I64 -> I64
and I32 x I8 x I128 -> I128 cases.

The specific list of changes are as follows:

Iop name in pub/libvex_ir.h
   documented type
     type of UNARY/BINARY/TERNARY in priv/ir_defs.c
-------------------------------------------------------

Iop_ExtractExpD64
   D64 -> I64
      UNARY(Ity_D64, Ity_D64); (current)
      UNARY(Ity_D64, Ity_I64); (fix)
 

Iop_ExtractExpD128
   D128 -> I64
       UNARY(Ity_D128, Ity_D64); (current)
       UNARY(Ity_D128, Ity_I64); (fix)

Iop_InsertExpD64
   I64 x I64 -> D64
   I64 x D64 -> D64 (fix definition)
       BINARY(Ity_D64,Ity_D64, Ity_D64); (current)
       BINARY(Ity_I64,Ity_D64, Ity_D64); (fix)

Iop_InsertExpD128
    I64 x I128 -> D128
    I64 x D128 -> D128 (fix definition)
        BINARY(Ity_D64,Ity_D128, Ity_D128); (current)
        BINARY(Ity_I64,Ity_D128, Ity_D128); (fix)

Iop_I64StoD128
    I64S -> D128
        UNARY(Ity_D64, Ity_D128); (current)
        UNARY(Ity_I64, Ity_D128); (fix)

Iop_D64toI64S
    IRRoundingModeDFP(I32) x D64 -> I64
        BINARY(ity_RMode, Ity_D64, Ity_D64) (current)
        BINARY(ity_RMode, Ity_D64, Ity_I64) (fix)

Iop_D128toI64S
    IRRoundingModeDFP(I32) x D128 -> I64
        BINARY(ity_RMode, Ity_D128, Ity_D64); (current)
        BINARY(ity_RMode, Ity_D128, Ity_I64); (fix)

Iop_I64StoD64
    IRRoundingModeDFP(I32) x I64 -> D64
        BINARY(ity_RMode, Ity_D64, Ity_D64); (current)
        BINARY(ity_RMode, Ity_I64, Ity_D64); (fix)

Iop_SignificanceRoundD64
    IRRoundingModeDFP(I32) x I8 x D64 -> D64
        TERNARY(ity_RMode,Ity_D64,Ity_D64, Ity_D64); (current)
        TERNARY(ity_RMode,Ity_I8,Ity_D64, Ity_D64); (fix)

Iop_SignificanceRoundD128
    IRRoundingModeDFP(I32) x I8 x D128 -> D128
         TERNARY(ity_RMode,Ity_D128,Ity_D128, Ity_D128); (current)
         TERNARY(ity_RMode,Ity_I8,Ity_D128, Ity_D128); (fix)

The patch is for bugzilla 311100
VEX Committed revision 2652

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13260 a5019735-40e9-0310-863c-91ae7b9d1cf9
ensure nightly reports the GDB version
Useful to investigate the behaviour of gdbsrv tests


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13261 a5019735-40e9-0310-863c-91ae7b9d1cf9
Implement the gdbsrv monitor command  v.do expensive_sanity_check_general
(useful to check the sanity of valgrind on request and/or from GDB,
when an error is reported by the tool).
Also re-order the NEWS entries to put the internals things after
the user level new functions.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13262 a5019735-40e9-0310-863c-91ae7b9d1cf9
Avoid doing a useless system call in scheduler sanity check


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13263 a5019735-40e9-0310-863c-91ae7b9d1cf9
Tweak script; ignore some more opcodes.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13264 a5019735-40e9-0310-863c-91ae7b9d1cf9
Update list of ignored files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13265 a5019735-40e9-0310-863c-91ae7b9d1cf9
Improve help message.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13266 a5019735-40e9-0310-863c-91ae7b9d1cf9
Changes to track r2664, which changed the type of the condition field
of Mux0X from Ity_I8 to Ity_I1.  Patch from Florian Krohm.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13267 a5019735-40e9-0310-863c-91ae7b9d1cf9
Avoid copying a string coming from argv[] into a fixed size buffer.
Pointed out by Coverity's checker.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13268 a5019735-40e9-0310-863c-91ae7b9d1cf9
Fix warning (missing #include file)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13269 a5019735-40e9-0310-863c-91ae7b9d1cf9
drd: Avoid that Coverity complains about a dead assignment

Thanks to Florian for reporting this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13270 a5019735-40e9-0310-863c-91ae7b9d1cf9
drd: Make --trace-addr trace all loads for the specified address

Thanks to Florian for reporting this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13271 a5019735-40e9-0310-863c-91ae7b9d1cf9
Initialise a local variable, so as to stop gcc-4.7.2 complaining that
some part of it is used uninitialised.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13272 a5019735-40e9-0310-863c-91ae7b9d1cf9
Infrastructure cleanup part 2. valgrind side changes.
Replace Iex_Mux0X with Iex_ITE (if-then-else).
Companion patch to VEX r2668.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13273 a5019735-40e9-0310-863c-91ae7b9d1cf9
Fix a buffer overflow in VG_(assert_fail).
Patch by Matthias Schwarzott (zzam@gentoo.org) with some minor mods.
Fixes BZ 313811


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13274 a5019735-40e9-0310-863c-91ae7b9d1cf9
Fix the mkLazy3 case for I32 x I8 x I128 -> I128.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13275 a5019735-40e9-0310-863c-91ae7b9d1cf9
Non functional change (formatting, comments) related to newly created
Iex_ITE.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13276 a5019735-40e9-0310-863c-91ae7b9d1cf9
get_otrack_shadow_offset_wrk: amd64: add a (very rare) missing case.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13277 a5019735-40e9-0310-863c-91ae7b9d1cf9
Increase maximum usable memory amount from 32GB to 64GB on 64-bit Linux.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13278 a5019735-40e9-0310-863c-91ae7b9d1cf9
test_reservation(), test_double_pair_instrs(): Fix broken inline assembly 
causing segfaults with gcc-4.7.  The inline assembly still isn't right,
but it's better than it was before.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13279 a5019735-40e9-0310-863c-91ae7b9d1cf9