Enable testing of primops on ARM platforms.  (Florian Krohm)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12957 a5019735-40e9-0310-863c-91ae7b9d1cf9
s390: Add a testcase for condition code computation for
convert-to-fixed. See VEX r2516. Part of fixing bugzilla #306054.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12958 a5019735-40e9-0310-863c-91ae7b9d1cf9
Announce bug fix in NEWS.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12959 a5019735-40e9-0310-863c-91ae7b9d1cf9
drd: Suppress race reports on .got sections too

This is a slightly modified version of a patch provided by Petar Jovanovic
<petar.jovanovic@rt-rk.com>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12960 a5019735-40e9-0310-863c-91ae7b9d1cf9
Update Subversion ignore list


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12961 a5019735-40e9-0310-863c-91ae7b9d1cf9
Restore unwind regs structure if VG_(use_CF_info) fails on MIPS.

If VG_(use_CF_info) fails to find the next frame using loaded debug symbols, it
will still change the data in uregs. Thus, we need to have uregs_copy before
calling VG_(use_CF_info), and restore uregs if the call returns wrong data.
This fixes drd/tests/tc04_free_lock on MIPS.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12962 a5019735-40e9-0310-863c-91ae7b9d1cf9
valgrind: Support Xen toolstack process ioctls

From: Ian Campbell <Ian.Campbell@citrix.com>

Under Xen the toolstack is responsible for managing the domains in
the system, e.g. creating, destroying, and otherwise manipulating
them.

To do this it uses a number of ioctls on the /proc/xen/privcmd
device. Most of these (the MMAPBATCH ones) simply set things up such
that a subsequenct mmap call will map the desired guest memory. Since
valgrind has no way of knowing what the memory contains we assume
that it is all initialised (to do otherwise would require valgrind to
be observing the complete state of the system and not just the given
process).

The most interesting ioctl is XEN_IOCTL_PRIVCMD_HYPERCALL which
allows the toolstack to make arbitrary hypercalls. Although the
mechanism here is specific to the OS of the guest running the
toolstack the hypercalls themselves are defined solely by the
hypervisor. Therefore I have split support for this ioctl into a part
in syswrap-linux.c which handles the ioctl itself and passes things
onto a new syswrap-xen.c which handles the specifics of the
hypercalls themselves. Porting this to another OS should just be a
matter of wiring up syswrap-$OS.c to decode the ioctl and call into
syswrap-xen.c. In the future we may want to split this into
syswrap-$ARCH-xen.c but for now this is x86 only.

The hypercall coverage here is pretty small but is enough to get
reasonable(-ish) results out of the xl toolstack when listing,
creating and destroying domains.

One issue is that the hypercalls which are exlusively used by the
toolstacks (as opposed to those used by guest operating systems) are
not considered a stable ABI, since the hypervisor and the lowlevel
tools are considered a matched pair. This covers the sysctl and
domctl hypercalls which are a fairly large chunk of the support
here. I'm not sure how to solve this without invoking a massive
amount of duplication. Right now this targets the Xen unstable
interface (which will shortly be released as Xen 4.2), perhaps I can
get away with deferring this problem until the first change .

On the plus side the vast majority of hypercalls are not of interest
to the toolstack (they are used by guests) so we can get away without
implementing them.

Note: a hypercall only reads as many words from the ioctl arg
struct as there are actual arguments to that hypercall and the
toolstack only initialises the arguments which are used. However
there is no space in the DEFN_PRE_TEMPLATE prototype to allow this to
be communicated from syswrap-xen.c back to syswrap-linux.c. Since a
hypercall can have at most 5 arguments I have hackily stolen ARG8 for
this purpose.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12963 a5019735-40e9-0310-863c-91ae7b9d1cf9
Fix 306310 3.8.0 release tarball missing some files



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12964 a5019735-40e9-0310-863c-91ae7b9d1cf9
s390: Fix FOC width. It's 4 bytes not 8.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12965 a5019735-40e9-0310-863c-91ae7b9d1cf9
s390x: Testcases for floating point 32/64-bit. Related to VEX r2525.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12966 a5019735-40e9-0310-863c-91ae7b9d1cf9
s390: Add testcase for square root and load positive/negative/complement.
Tests are for 32/64-bit values only.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12967 a5019735-40e9-0310-863c-91ae7b9d1cf9
s390: Add testcase for bfp multiply-and-add/sub


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12968 a5019735-40e9-0310-863c-91ae7b9d1cf9
Adjust the vbit tester to deal with shift operations that require
an immediate constant as the shift amount. This is needed for
powerpc Iop_ShlD64 etc. What it basically means that we do not
iterate over the bits in the 2nd operand because there are no
V-bits to set. An immediate constant is always completely defined.
Fixes bugzilla #305948.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12969 a5019735-40e9-0310-863c-91ae7b9d1cf9
Enable pre-wrapper for sys_shutdown for MIPS.

Small change to enable wrapper for sys_shutdown for MIPS.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12970 a5019735-40e9-0310-863c-91ae7b9d1cf9
Update for s390.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12971 a5019735-40e9-0310-863c-91ae7b9d1cf9
Add a test which checks the leak search recovery mechanism

The leak search must recover if unreadable pages are scanned.
This test creates such unreadable pages by doing non SIMD mprotect
syscall (not seen by the aspacemgr).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12972 a5019735-40e9-0310-863c-91ae7b9d1cf9
Mark revision 12964 to be merged in 3.8.1
(this revision fixes some missing files in the release tarball)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12973 a5019735-40e9-0310-863c-91ae7b9d1cf9
Setup correct minimum malloc'd block size for MIPS.

Correct minimum malloc's block size for MIPS is 8.
This fixes massif/tests/big-alloc.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12974 a5019735-40e9-0310-863c-91ae7b9d1cf9
s390: Add a testcase for 32/64-bit bfp comparison insns.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12975 a5019735-40e9-0310-863c-91ae7b9d1cf9
Adding new exp file for tc18_semabuse in helgrind.

The existing tc18_semabuse.stderr.exp expects that sem_post on a bogus semaphore
will fail, yet it does not on platforms such as MIPS or ARM. This is specific to
implementation of sem_post for i386/x86_64 that has some assumptions such as that
'private' field is not clobbered. This will eventually result in different
parameter passed to syscall and thus different output is encountered.
This change fixes helgrind/tests/tc18_semabuse for MIPS.


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