1467 Commits

Author SHA1 Message Date
Julian Seward
93a35b014f Handle new 32-bit SIMD integer primops introduced in vex r2037.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11371
2010-09-22 00:58:51 +00:00
Bart Van Assche
75ac57dc3a Made timerfd-syscall test more robust by improving the time rounding algorithm.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11368
2010-09-19 17:21:31 +00:00
Bart Van Assche
3169936a1b Fixed a typo.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11367
2010-09-19 17:16:39 +00:00
Bart Van Assche
e7b5c2eb6e memcheck/tests/linux/timerfd-syscall: send output to stderr instead of stdout.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11366
2010-09-19 17:13:53 +00:00
Bart Van Assche
006b3b1228 PowerPC: added expected output files for memcheck/tests/varinfo[1-6], based
on a patch supplied by Maynard Johnson. See also #247526.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11364
2010-09-18 13:34:23 +00:00
Bart Van Assche
94e48485ec PowerPC: corrected expected output for memcheck/tests/origin5-bz2. Patch
supplied by Maynard Johnson -- see also #247526.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11363
2010-09-18 10:45:27 +00:00
Bart Van Assche
2382e79f3d Avoid triggering AM_CFLAGS / AM_CXXFLAGS redefinition warnings.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11356
2010-09-13 17:44:51 +00:00
Julian Seward
e6d2a8b34e Fix a couple of make-dist bugs, caused by recently added ppc32/64
tests.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11352
2010-09-10 14:57:46 +00:00
Julian Seward
9287d802b4 Add tests for new PowerISA_2.05 instructions available on Power6 CPUs.
(Maynard Johnson, maynardj@us.ibm.com and Pete Eberlein, eberlein@us.ibm.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11338
2010-09-03 23:49:33 +00:00
Julian Seward
a96d8cb715 Make the leak tests a whole lot less flaky on ppc32/64-linux by
zeroing out caller saves registers before the leak check.  We should
really do this on all platforms, not just these.
(Maynard Johnson, maynardj@us.ibm.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11336
2010-09-03 15:14:41 +00:00
Bart Van Assche
e9f89f7e28 Updated expected output. The output changed because of r11320.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11321
2010-09-02 10:52:54 +00:00
Bart Van Assche
6de75283c0 Improved support for VALGRIND_MALLOCLIKE_BLOCK in memcheck: error
messages printed for client-annotated blocks do now include a correct
address description. Closes #237371.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11320
2010-09-02 10:24:49 +00:00
Bart Van Assche
6633b3b908 The client requests defined in memcheck.h can now be invoked from programs compiled with the Microsoft C compiler too.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11319
2010-09-02 09:41:52 +00:00
Bart Van Assche
35eece7dd5 Added command-line option --prefix-to-strip=... Closes #245535.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11312
2010-08-31 15:18:32 +00:00
Bart Van Assche
04eca8b9d6 Updated memcheck/tests/Makefile.am.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11297
2010-08-27 10:55:04 +00:00
Bart Van Assche
faffc9a902 Filter out lines that differ between x86 and ppc.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11296
2010-08-27 10:52:40 +00:00
Bart Van Assche
8122b2aaef Added new memcheck command-line option --show-possibly-lost. Closes #201170.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11292
2010-08-26 10:56:27 +00:00
Julian Seward
d866af8d34 Change the replacement for memcpy to a vectorised version that does
word copies whenever possible.  This drastically reduces the number of
memory references Memcheck has to process and speeds up a test program
that does repeated memcpys of large blocks by a factor of 4 or more.
Also add a vectorised version of memset.

The memcpy version is also constructed with a view to be used in
exp-ptrcheck, so it can copy areas of memory without losing
pointer-identity shadow data, as happens when doing all copies at a
byte granularity.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11288
2010-08-24 09:05:52 +00:00
Julian Seward
58d26cc998 Merge from branches/THUMB: add (partial) --track-origins support for
new guest state components needed for Thumb and NEON support.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11282
2010-08-22 12:16:25 +00:00
Julian Seward
5e6248c7ed Merge from branches/THUMB: tool-side handling of new primops required
for NEON support.  Requires further checking.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11277
2010-08-22 11:54:14 +00:00
Julian Seward
b2113a567d Add in comments a (validated) strspn replacement, should it become
necessary.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11270
2010-08-20 18:24:16 +00:00
Julian Seward
9a8dd3161a Add intercepts for strstr, strpbrk, strcspn. These are needed for
glibc-2.11 when running on SSE4-enabled (virtual) CPUs, for the usual
reason: to avoid ultra-optimised routines using the SSE 4.2 PCMPxSTRx
instructions.  I would not be surprised if it turned out that strspn
was required, but I haven't seen a need for it so far.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11268
2010-08-19 13:22:34 +00:00
Julian Seward
1ec3c376a6 Track vex r2001 (initial PCMPISTRI support):
* handle new pseudo-reg XMM16 in memcheck/mc_machine.c

* run_thread_for_a_while: assert that the amd64 XMM guest reg array
  has no holes and the elements are the right size, so that the
  (PCMP)ISTRI_* helpers can treat it as an array.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11249
2010-08-06 08:01:47 +00:00
Bart Van Assche
229c4c92b3 Follow-up for r11191: made this test pass again.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11248
2010-07-31 13:37:58 +00:00
Bart Van Assche
4a91cb990c Passes now when compiled with gcc 4.5.x too.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11247
2010-07-31 13:13:53 +00:00
Julian Seward
af6f731ae8 Make the --workaround-gcc296-bugs kludge take into account the stack
redzone size.  Fixes #238208.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11217
2010-07-21 12:46:44 +00:00
Julian Seward
ee41ec86f0 Try to fix 'make dist' -- possible fallout from r11188.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11213
2010-07-15 13:05:42 +00:00
Nicholas Nethercote
11f94ef626 Make error messages at start-up more consistent. Every line of such
messages now begin with "valgrind: ", and they're more often printed before
the preamble.  This required introducing a new message kind, Vg_FailMsg, and
functions VG_(fmsg) and VG_(fmsg_bad_option), and removing
VG_(err_bad_option).

Where we used to have horrible output like this:

    [ocean:~/grind/ws2] vg5 --tool=massif --threshold=101 date
    ==31877== Massif, a heap profiler
    ==31877== Copyright (C) 2003-2010, and GNU GPL'd, by Nicholas Nethercote
    ==31877== Using Valgrind-3.6.0.SVN and LibVEX; rerun with -h for copyright info
    ==31877== Command: date
    ==31877== 
    ==31877== --threshold must be between 0.0 and 100.0
    valgrind: Bad option '--threshold'; aborting.
    valgrind: Use --help for more information.

We now have nice output like this:

    [ocean:~/grind/ws2] vg2 --tool=massif --threshold=101 date
    valgrind: Bad option: --threshold=101
    valgrind: --threshold must be between 0.0 and 100.0
    valgrind: Use --help for more information or consult the user manual.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11209
2010-07-06 04:05:23 +00:00
Nicholas Nethercote
fb6d1e0427 Fix various bits of regtest breakage on amd64-linux caused by the MACOSX106
merge.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11199
2010-07-01 01:09:42 +00:00
Nicholas Nethercote
2086d71421 Remove a bogus header file listing.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11197
2010-07-01 00:37:46 +00:00
Nicholas Nethercote
5fcd51035e Add a missing filter_stderr file.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11196
2010-07-01 00:34:54 +00:00
Nicholas Nethercote
6fd0eb7b07 Merged the MACOSX106 branch to the trunk. Merge command:
svn merge -r11143:HEAD svn://svn.valgrind.org/valgrind/branches/MACOSX106

There were some easy-to-resolve conflicts.

Then I had to fix up coregrind/link_tool_exe*.in -- those files had been
added independently on both the trunk and the branch, AFAICT.  I just
overwrote the trunk versions with the branch versions.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11194
2010-07-01 00:20:20 +00:00
Julian Seward
b946fac47a Handle new primop Iop_RoundF32toInt, needed by SSE4 ROUNDSS (vex
r1986).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11189
2010-06-27 09:08:54 +00:00
Julian Seward
1ce6a7eda5 Valgrind-side changes needed to go with vex r1984 (Implement SSE4
insns: CMPGTQ PMAXUD PMINUD PMAXSB PMINSB PMULLD)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11181
2010-06-18 08:18:38 +00:00
Julian Seward
05124264b0 Remove link_tool_exe.c and replace it with perl scripts that do the
same thing.  A .c file doesn't work for cross compilation.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11174
2010-06-13 22:13:58 +00:00
Julian Seward
c46347280b Add a new program (link_tool_exe.c) and use this to link the tool
executables.  Gets rid of the linker script kludgery and uniformly
uses -Ttext=0x38000000 (or whatever) on Linux, so as to accomodate
both traditional ld and gold.  Should fix #193413 although I have
been unable to test it.  Using a whole new program seems like
overkill, but this is infrastructure to support static linking of
the tool executables on MacOS too.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11141
2010-06-02 00:31:34 +00:00
Julian Seward
9b0574dff8 Update copyright dates to 2010.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121
2010-05-03 21:37:12 +00:00
Julian Seward
96b3024832 Fix handling of mprotect so as to be more consistent with the handling
of mmap.  Fixes #205541 and its dup #210268.  The fix is simple enough
but the analysis is a bit complex, as detailed in comments.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11031
2010-01-27 10:28:00 +00:00
Julian Seward
dab35973c5 Update expected output.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11022
2010-01-08 10:51:25 +00:00
Julian Seward
db42582f80 Analysis/make-it-work for arm-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11014
2010-01-04 12:10:24 +00:00
Julian Seward
3c1644f476 Enable origin tracking through arm VFP registers; was apparently
previously not enabled only due to brain-deadness on my part.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11012
2010-01-04 11:48:19 +00:00
Julian Seward
3322cbe3a1 Handle Iop_SqrtF32.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11001
2010-01-03 22:29:32 +00:00
Julian Seward
2d7fcf0f82 Make sure the Memcheck tests are built on arm-linux using hardware
floating point, since the softfloat results are way different from the
hardware one (not to mention, V reports lots of accesses-below-the-SP
in the softfloat helper functions.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10999
2010-01-03 21:24:09 +00:00
Julian Seward
7f0663010b Disable this test (effectively) on arm-linux, since that uses
sys_rt_sigprocmask and not the Aulde Fashionede sys_sigprocmask.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10997
2010-01-03 16:10:14 +00:00
Julian Seward
e9de458500 Merge from branches/ARM, all parts of the ARM-Linux port except for
the changes to do with reading and using ELF and DWARF3 info.
This breaks all targets except amd64-linux and x86-linux.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10982
2010-01-01 11:59:33 +00:00
Julian Seward
7ed620741c Track changes in the names of a few IR primops to do with int<->fp
conversions, as introduced in vex r1949.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10980
2009-12-31 19:24:12 +00:00
Julian Seward
be9f7279ce Track vex r1930 (Change the IR representation of load linked and store
conditional.)  Completes the fix of #215771.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10957
2009-11-26 17:20:21 +00:00
Bart Van Assche
e8e16af0dc Made sure that the sigqueue regression test passes on 32-bit and on 64-bit systems.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10922
2009-10-30 11:37:35 +00:00
Tom Hughes
00d987f91a Add support for ELF indirect functions. These are symbols of
type STT_GNU_IFUNC which, instead of pointing directly at the
function, point at a routine which will return the address of
the real function. Redirection of indirect functions is handled
by valgrind as follows:

  - When a redirection specification matches an indirect
    function symbol an active redirection is added in the
    normal way, but with the isIFunc flag set.

  - When a call is made to an address which matches an
    active redirection with the isIFunc flag set the call
    is redirected, but not to the target address of the
    redirection - instead it is sent to a small wrapper
    routine that is preloaded into the client.

  - The wrapper routine calls the original client routine
    and collects the result, which it reports to valgrind
    using a client request, and then returns the result to
    the caller.

  - When valgrind gets the client request it looks up the
    active redirection for the indirect function and then
    adds a new active redirection which redirects from the
    address returned by the indirection function to the
    redirection target. This new redirection does not have
    the isIFunc flag set so behaves as a normal redirection.

In addition to the above we also add a few new redirections to
memcheck to capture internal calls made by glibc to things like
strlen, as these internal calls do not go through the indirect
function and instead go direct to the chosen implementation.

Based on a patch from Dodji Seketeli and comments from Jakub
Jelinek, this commit closes bug 206013.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10920
2009-10-29 09:27:11 +00:00
Bart Van Assche
0e5846e018 Fixed expected output.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10916
2009-10-28 10:13:20 +00:00