]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
12 years agoFix exception specification for operator delete as spotted by clang 3.3
Florian Krohm [Tue, 1 Oct 2013 22:18:14 +0000 (22:18 +0000)] 
Fix exception specification for operator delete as spotted by clang 3.3

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13598

12 years agoRemove a duplicate const qualifier complained about by clang 3.3
Florian Krohm [Tue, 1 Oct 2013 20:10:21 +0000 (20:10 +0000)] 
Remove a duplicate const qualifier complained about by clang 3.3

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13597

12 years agoFix printf format. The 'L' modifier cannot be used with
Florian Krohm [Tue, 1 Oct 2013 18:39:55 +0000 (18:39 +0000)] 
Fix printf format. The 'L' modifier cannot be used with
the 'x' format specifier. Use 'll' instead.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13596

12 years agodrd: Change VALGRIND_DO_CLIENT_REQUEST_EXPR() into VALGRIND_DO_CLIENT_REQUEST_STMT...
Bart Van Assche [Tue, 1 Oct 2013 16:55:58 +0000 (16:55 +0000)] 
drd: Change VALGRIND_DO_CLIENT_REQUEST_EXPR() into VALGRIND_DO_CLIENT_REQUEST_STMT() where appropriate

This should silence a few clang warnings. This was reported by Florian.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13595

12 years agoAdd tests for the phase 3 ISA 2.07 code patch
Carl Love [Tue, 1 Oct 2013 15:50:09 +0000 (15:50 +0000)] 
Add tests for the phase 3 ISA 2.07 code patch

This patch adds testcases to an existing testcase
source file to test the new instructions which were
added to VEX support in the phase 3 ISA 2.07 code patch.
The patch also makes a small change to memcheck's
vbit tester code to allow successful execution.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
Bugzilla 324894.   Corresponding VEX commit 2779

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13594

12 years agoPhase 3 support for IBM Power ISA 2.07
Carl Love [Tue, 1 Oct 2013 15:45:54 +0000 (15:45 +0000)] 
Phase 3 support for IBM Power ISA 2.07

This patch adds support for the following vector instructions for doing
arithmetic, min, max, shift, pack, unpack and rotate:

  vsubudm, vmaxud, vmaxsd, vminud, vminsd, vmulouw,
  vmuluwm, vmulosw, vmuleuw, vmulesw, vcmpequd, vcmpgtud, vcmpgtsd,
  vrld, vsld, vsrad, vsrd, vpkudus, vpksdus, vpksdss,
  vupkhsw, vupklsw, vmrgew, vmrgow

The following Iops were added to support the above instructions:
  Iop_MullEven32Ux4, Iop_MullEven32Sx4, Iop_Max64Sx2, Iop_Max64Ux2,
  Iop_Min64Sx2, Iop_Min64Ux2, Iop_CmpGT64Ux2, Iop_Rol64x2,
  Iop_QNarrowBin64Sto32Ux4, Iop_QNarrowBin64Uto32Ux4, Iop_NarrowBin64to32x4,

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
Bugzilla 324894

git-svn-id: svn://svn.valgrind.org/vex/trunk@2779

12 years agomips32: Fix the align problem with mmap.
Dejan Jevtic [Tue, 1 Oct 2013 10:34:54 +0000 (10:34 +0000)] 
mips32: Fix the align problem with mmap.

Valgrind is doing mmap always with MAP_FIXED. On mips32 we need to check arg4.
If the arg4 is MAP_SHARED we need to align the address to SHMLBA.
If the program tries to do mmap with VKI_FIXED Valgrind doesn't need to align
the address to SHMLBA.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13593

12 years agoFix typo
Florian Krohm [Tue, 1 Oct 2013 07:01:08 +0000 (07:01 +0000)] 
Fix typo

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13592

12 years agoUse global vars to point at possibly leaked
Philippe Waroquiers [Mon, 30 Sep 2013 21:17:09 +0000 (21:17 +0000)] 
Use global vars to point at possibly leaked
Depending on the compiler or optimisation level, the blocks that
are supposed to be possibly leaked are still reachable.
=> change the pointers to be global variables,
and do the allocation in a function, not in main.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13591

12 years agoUpdate list of ignored files.
Florian Krohm [Mon, 30 Sep 2013 19:01:54 +0000 (19:01 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13590

12 years agoRobustise the find_client function. Also fix a memory leak spotted by
Florian Krohm [Mon, 30 Sep 2013 18:36:31 +0000 (18:36 +0000)] 
Robustise the find_client function. Also fix a memory leak spotted by
IBM's BEAM checker.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13589

12 years agoUpdated.
Florian Krohm [Mon, 30 Sep 2013 16:41:56 +0000 (16:41 +0000)] 
Updated.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13588

12 years agoCheck whether binutils supports TSX instructions.
Florian Krohm [Mon, 30 Sep 2013 16:32:53 +0000 (16:32 +0000)] 
Check whether binutils supports TSX instructions.
Guard none/tests/amd64/tm1 accordingly.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13587

12 years agoEnable sys_fanotify_init and sys_fanotify_mark on arm-linux.
Julian Seward [Sun, 29 Sep 2013 20:01:22 +0000 (20:01 +0000)] 
Enable sys_fanotify_init and sys_fanotify_mark on arm-linux.
Fixes #324421.  (Heinrich Schuchardt, xypron.glpk@gmx.de)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13586

12 years agoUpdate bug status.
Julian Seward [Sun, 29 Sep 2013 19:54:39 +0000 (19:54 +0000)] 
Update bug status.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13585

12 years agoAdd test cases for SMMLS, SMLALD, SMLSLD (ARM and Thumb). Pertains to
Julian Seward [Sun, 29 Sep 2013 19:49:43 +0000 (19:49 +0000)] 
Add test cases for SMMLS, SMLALD, SMLSLD (ARM and Thumb).  Pertains to
323036, 323175, 323177.  (vasily.golubev@gmail.com)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13584

12 years agoImplement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Julian Seward [Sun, 29 Sep 2013 19:48:44 +0000 (19:48 +0000)] 
Implement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Fixes 321891, 323035, 324047.  (vasily.golubev@gmail.com)

git-svn-id: svn://svn.valgrind.org/vex/trunk@2778

12 years agoAdd test cases for LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Julian Seward [Sun, 29 Sep 2013 18:25:29 +0000 (18:25 +0000)] 
Add test cases for LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Pertains to 321891, 323035, 324047.  (vasily.golubev@gmail.com)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13583

12 years agoImplement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Julian Seward [Sun, 29 Sep 2013 18:24:15 +0000 (18:24 +0000)] 
Implement LDRHT (Thumb), LDRSHT (Thumb), [LDR,ST]{S}[B,H]T (ARM).
Fixes 321891, 323035, 324047.  (vasily.golubev@gmail.com)

git-svn-id: svn://svn.valgrind.org/vex/trunk@2777

12 years agoadd heuristics decreasing false possible "possible leaks" in c++ code.
Philippe Waroquiers [Sun, 29 Sep 2013 13:47:32 +0000 (13:47 +0000)] 
add heuristics decreasing false possible "possible leaks" in c++ code.

The option --leak-check-heuristics=heur1,heur2,... can activate
various heuristics to decrease the number of false positive
"possible leaks" for C++ code. The available heuristics are
detecting valid interior pointers to std::stdstring, to new[] allocated
arrays with elements having destructors and to interior pointers pointing
to an inner part of a C++ object using multiple inheritance.

This fixes 280271 Valgrind reports possible memory leaks on still-reachable
std::string

This has been tested on x86/amd64/ppc32/ppc64.

First performance measurements seems to show a neglectible impact on
the leak search.

More feedback welcome both on performance and functional aspects
(false positive 'possibly leaked' rate decrease and/or
false negative 'possibly leaked' rate increase).

Note that the heuristic is not checking that the memory has been
allocated with "new" or "new[]", as it is expected that in some cases,
specific alloc fn are used for c++ objects instead of the standard new/new[].
If needed, we might add an option to check the alloc functions
to be new/new[].

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13582

12 years agoUpdate bug status.
Julian Seward [Sun, 29 Sep 2013 09:59:50 +0000 (09:59 +0000)] 
Update bug status.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13581

12 years agoensure nightly regression tests can (optionally) run perf tests
Philippe Waroquiers [Fri, 27 Sep 2013 18:10:29 +0000 (18:10 +0000)] 
ensure nightly regression tests can (optionally) run perf tests

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13580

12 years agoAdd a test program of sorts, for XBEGIN and XTEST.
Julian Seward [Fri, 27 Sep 2013 15:22:50 +0000 (15:22 +0000)] 
Add a test program of sorts, for XBEGIN and XTEST.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13579

12 years agoAdd a kludgey implementation of XTEST to go with the kludgey
Julian Seward [Fri, 27 Sep 2013 15:03:58 +0000 (15:03 +0000)] 
Add a kludgey implementation of XTEST to go with the kludgey
implementation of XBEGIN.  Also kludge the CPUID output for AVX
capable targets so as to claim we support HTM.
Mark Wielaard, mjw@redhat.com)

git-svn-id: svn://svn.valgrind.org/vex/trunk@2776

12 years agoarmg_calculate_condition: add missing masking (probably pointless,
Julian Seward [Fri, 27 Sep 2013 12:11:50 +0000 (12:11 +0000)] 
armg_calculate_condition: add missing masking (probably pointless,
but makes it easy to verify).

git-svn-id: svn://svn.valgrind.org/vex/trunk@2775

12 years agoAnnotate some bug reports with comments about priority.
Julian Seward [Thu, 26 Sep 2013 08:18:47 +0000 (08:18 +0000)] 
Annotate some bug reports with comments about priority.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13578

12 years agomips64: finetune mips_dirtyhelper_calculate_FCSR
Petar Jovanovic [Tue, 24 Sep 2013 22:27:23 +0000 (22:27 +0000)] 
mips64: finetune mips_dirtyhelper_calculate_FCSR

Several MIPS32 Revision 2 instructions also belong to Revision 1 of MIPS64.
Modifing parts of mips_dirtyhelper_calculate_FCSR to be active for MIPS64R1.

This fixes none/tests/mips64/round when Valgrind is compiled for MIPS64 R1.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2774

12 years agomips32: Add two syscall wrappers:
Dejan Jevtic [Tue, 24 Sep 2013 14:21:50 +0000 (14:21 +0000)] 
mips32: Add two syscall wrappers:
4345 __NR_process_vm_readv
4346 __NR_process_vm_writev
Code style, no functional changes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13577

12 years agomips32: Change the input values for round test.
Dejan Jevtic [Tue, 24 Sep 2013 07:00:46 +0000 (07:00 +0000)] 
mips32: Change the input values for round test.
Change the input values so that the binary value
is representing exactly the same float value.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13576

12 years agomips32: protect mips32r2 instructions with a flag
Petar Jovanovic [Sat, 21 Sep 2013 01:47:18 +0000 (01:47 +0000)] 
mips32: protect mips32r2 instructions with a flag

Regression issue that came when mips_dirtyhelper_calculate_FCSR was added.
Inline assembly with MIPS32r2 instructions needs to be protected by flags
that disable it for non-MIPS32r2 platforms such as some Broadcom boards.

Fixes the issue: Bugzilla 325124.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2773

12 years agoIn an attempt to fix the accounting for dynamic memory allocation
Florian Krohm [Fri, 20 Sep 2013 21:34:40 +0000 (21:34 +0000)] 
In an attempt to fix the accounting for dynamic memory allocation
it turned out that coregrind freely allocates memory on the tool
arena (which it should not, conceptually) and tools rely on coregrind
doing so (by VG_(free)'ing memory allocated by coregrind).
Entangling this mess is risky and provides little benefit except
architectural cleanliness.
Thinking more about it... It isn't really all that interesting how
much memory is allocated by tool code in and by itself.  What is
interesting is the total memory impact a tool has, e.g. as compared
to running "none".
So in this patch the number of memory arenas is consolidated by
subsuming VG_AR_TOOL/ERRORS/EXECCTXT into VG_AR_CORE.
VG_(malloc) and friends have been modified to operate on VG_AR_CORE.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13575

12 years agoAdd test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
Carl Love [Fri, 20 Sep 2013 17:32:06 +0000 (17:32 +0000)] 
Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.

The patch was supplied by Anmol P. Paralkar.

Valgrind Bugzilla 325110

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13574

12 years agoAdd the install directory that gets created by the nightly script.
Florian Krohm [Fri, 20 Sep 2013 12:12:52 +0000 (12:12 +0000)] 
Add the install directory that gets created by the nightly script.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13573

12 years agomips32/64: Save the value of FCSR register at the beginning and restore it
Dejan Jevtic [Fri, 20 Sep 2013 09:58:16 +0000 (09:58 +0000)] 
mips32/64: Save the value of FCSR register at the beginning and restore it
back at the end of dirty helper.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2772

12 years agoMore bug triage.
Julian Seward [Thu, 19 Sep 2013 23:04:03 +0000 (23:04 +0000)] 
More bug triage.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13572

12 years agoFix two issues found by check_headers_and_includes.
Florian Krohm [Thu, 19 Sep 2013 14:55:27 +0000 (14:55 +0000)] 
Fix two issues found by check_headers_and_includes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13571

12 years agoAdd a script 'check_headers_and_includes' to check that #include directives
Florian Krohm [Thu, 19 Sep 2013 14:55:09 +0000 (14:55 +0000)] 
Add a script 'check_headers_and_includes' to check that #include directives
are not against the grain.
Wrap this script together with 'check_makefile_consistency' into
'post_regtest_checks' and invoke that from the toplevel Makefile. So we can
easily add new checkers in the future.

Add a new make target 'post-regtest-checks' to just run those checks
and nothing else.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13570

12 years agomips32/64: add extra test cases in vbit-test for mips32/64.
Dejan Jevtic [Thu, 19 Sep 2013 13:36:12 +0000 (13:36 +0000)] 
mips32/64: add extra test cases in vbit-test for mips32/64.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13569

12 years agomips32/64: Code cleanup and VEX optimizations. No functional changes.
Dejan Jevtic [Thu, 19 Sep 2013 13:35:45 +0000 (13:35 +0000)] 
mips32/64: Code cleanup and VEX optimizations. No functional changes.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2771

12 years agomips32/64: Fix the problem with dirty helper when the
Dejan Jevtic [Thu, 19 Sep 2013 10:22:42 +0000 (10:22 +0000)] 
mips32/64: Fix the problem with dirty helper when the
__mips_isa_rev is not 2 on higher.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2770

12 years agoDouble the size of the (already huge) translation cache on all
Julian Seward [Thu, 19 Sep 2013 10:15:22 +0000 (10:15 +0000)] 
Double the size of the (already huge) translation cache on all
non-phone/tablet targets.  The previous apparently-huge sizing is
evidently not huge enough for recent apps, eg, recent Firefox requires
circa 350k translations to get started and almost fills an 8-sector
cache merely starting up and then idling.

On Android targets, fall back to 6 sectors; space is critical.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13568

12 years agoIncrease VG_N_SEGMENTS and VG_N_SEGNAMES by a factor of 6 on all
Julian Seward [Thu, 19 Sep 2013 10:04:59 +0000 (10:04 +0000)] 
Increase VG_N_SEGMENTS and VG_N_SEGNAMES by a factor of 6 on all
non-{phone/tablet} platforms.  Possibly fixes #164485.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13567

12 years agoComment-only change.
Julian Seward [Thu, 19 Sep 2013 09:27:05 +0000 (09:27 +0000)] 
Comment-only change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13566

12 years agoRecent libxul.so on ARM has more than 5000 CIEs. Increase N_CIEs,
Julian Seward [Thu, 19 Sep 2013 09:14:56 +0000 (09:14 +0000)] 
Recent libxul.so on ARM has more than 5000 CIEs.  Increase N_CIEs,
therefore.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13565

12 years agoMove some now-closed bugs into NEWS.
Julian Seward [Thu, 19 Sep 2013 08:55:36 +0000 (08:55 +0000)] 
Move some now-closed bugs into NEWS.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13564

12 years agoAdd support for the Intel TM "xbegin" instruction, by jumping directly
Julian Seward [Wed, 18 Sep 2013 19:41:43 +0000 (19:41 +0000)] 
Add support for the Intel TM "xbegin" instruction, by jumping directly
to the failure address.  Currently disabled pending finding hardware
that can actually execute xbegin, for testing purposes.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2769

12 years agox86 front ends: tighten up decoding of MOV Ib,Eb and MOV Iv,Ev. This
Julian Seward [Wed, 18 Sep 2013 18:27:55 +0000 (18:27 +0000)] 
x86 front ends: tighten up decoding of MOV Ib,Eb and MOV Iv,Ev.  This
failed to check the g-register in the modrm byte, with the result that
it will mis-decode the AVX2 XABORT and XBEGIN instructions as these
instead, with obviously-bizarre consequences.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2768

12 years agoOops, commit 13562 said the patch was done by Amodra. It should have
Carl Love [Wed, 18 Sep 2013 17:45:54 +0000 (17:45 +0000)] 
Oops, commit 13562 said the patch was done by Amodra.  It should have
said the patch was from Paralkar Anmol.

This is the fix for Bugzilla 324765.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13563

12 years agoThe patch fixes the assembly of the Power dcbtst and dcbt instructions.
Carl Love [Wed, 18 Sep 2013 16:06:46 +0000 (16:06 +0000)] 
The patch fixes the assembly of the Power dcbtst and dcbt instructions.

The assembly of these instructions is not alwasy being done correctly as
described in the following email reply.

  Re: Assembling Power instructions: dcbtst/dcbt.

      From: Peter Bergner <bergner at vnet dot ibm dot com>
      To: Paralkar Anmol-B07584 <B07584 at freescale dot com>
Cc: "amodra at bigpond dot net dot au" <amodra at bigpond dot net dot au>, "binutils at sourceware dot org" <binutils at sourceware dot org>
      Date: Fri, 13 Sep 2013 15:22:35 -0500
      Subject: Re: Assembling Power instructions: dcbtst/dcbt.
      Authentication-results: sourceware.org; auth=none
      References: <DC6D7B34688246489A6578981A5ADEB9302A07 at 039-SN2MPN1-012 dot 039d dot mgd dot msft dot net>

  On Fri, 2013-09-13 at 18:32 +0000, Paralkar Anmol-B07584 wrote:
  > Hello,
  >
  >  Per Power ISA Version 2.07 (May 3, 2013) "4.3.2 Data Cache Instructions",
  >  the assembly language syntax for the dcbtst instruction (pp. 771) is:
  >
  >  dcbtst RA,RB,TH [Category: Server]
  >  dcbtst TH,RA,RB [Category: Embedded]
  >
  >  and it's layout in the object code is:
  >
  >   +------+------+------+------+------------+---+
  >   |  31  |  TH  |  RA  |   RB |  246(0xF6) | / |
  >   |0     |6     |11    |16    |21          |31 |
  >   +------+------+------+------+------------+---+
  >
  >  (Analogously: dcbt pp. 770)
  >
  >  However, GAS (as of version 2.23.52.20130912) decides on the syntax to use based on
  >  processor/architecture dialect (not Power ISA Category), using the Server syntax in
  >  the case of POWER4 and the Embedded syntax for generic PPC or VLE.

  That was a bug fixed here:

      https://sourceware.org/ml/binutils/2012-11/msg00352.html

  >  Consequently (e.g.),
  >
  >  dcbtst 17, 14, 6
  >
  >  in the assembly file gets "misassembled" under -many for a user-space program on Linux:

  When you only specify -many (and not one of -mpower4, -mpower5, etc.),
  the assembler/disassembler will choose a default -m<CPU> value for
  you.  That has changed over time, but is generally one of the newer
  server cpus.  For example, for binutils trunk, the default is now
  -mpower8 and for your 2.23.x binutils, it is -mpower7.
  That should force the assembler and disassembler to assemble
  the instruction using the server operand order you want, but the bug
  above (which is in 2.23) basically resets it to an old cpu, so it
  chooses to use the embedded/old cpu setting.

The patch from Amodra fixes the issue by manually generating the correct
hex value for the instruction rather then leaving it to the assembler to
generate the hex value from the symbolic assembly instruction name.

This is the fix for Bugzilla 324765.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13562

12 years agoFix memory leak when reallocating a thread name.
Florian Krohm [Wed, 18 Sep 2013 14:00:10 +0000 (14:00 +0000)] 
Fix memory leak when reallocating a thread name.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13561

12 years agoUnbreak the build on non-MIPS platforms.
Tom Hughes [Wed, 18 Sep 2013 11:24:25 +0000 (11:24 +0000)] 
Unbreak the build on non-MIPS platforms.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2767

12 years agomips32/mips64: tests for FCSR.
Dejan Jevtic [Wed, 18 Sep 2013 10:08:23 +0000 (10:08 +0000)] 
mips32/mips64: tests for FCSR.

Change the existing tests to print the value of the FCSR
register after the mips fpu instruction is executed.
Add tests that are testing the value of FCSR register.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13560

12 years agomips32/mips64: additional VEX support for FCSR register.
Dejan Jevtic [Wed, 18 Sep 2013 10:06:13 +0000 (10:06 +0000)] 
mips32/mips64: additional VEX support for FCSR register.

Some mips fpu instructions are changing the value of the
fcsr register so we need to update the value of the fcsr
register in the guest state.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2766

12 years agoTweak filter_xml_frames. Suppress frames containing neither a
Florian Krohm [Wed, 18 Sep 2013 09:15:23 +0000 (09:15 +0000)] 
Tweak filter_xml_frames. Suppress frames containing neither a
function name nor any source code reference.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13559

12 years agomips64: add tests for MIPS64 Octeon Instructions
Petar Jovanovic [Wed, 18 Sep 2013 02:19:45 +0000 (02:19 +0000)] 
mips64: add tests for MIPS64 Octeon Instructions

Follow up to VEX r2765.

Patch by Zahid Anwar.

Bugzilla issue 322150

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13558

12 years agomips64: VEX support for MIPS64 Octeon Instructions
Petar Jovanovic [Wed, 18 Sep 2013 02:17:43 +0000 (02:17 +0000)] 
mips64: VEX support for MIPS64 Octeon Instructions

Modeling the following Cavium Octeon instructions:

exts, exts32, cins, cins32, snei, sne, seqi, dmul, seq.

Patch by Zahid Anwar.

Bugzilla issue 322150

git-svn-id: svn://svn.valgrind.org/vex/trunk@2765

12 years agoFollowup to r13553 which caused some build failures.
Florian Krohm [Tue, 17 Sep 2013 20:15:36 +0000 (20:15 +0000)] 
Followup to r13553 which caused some build failures.
(1) Detect availability of pthread_setname_np. Ignore testcases
    memcheck/tests/threadname[_xml] if not available.
(2) Enable _GNU_SOURCE to avold compiler warnings.
(3) In threadname_xml filter out stackframes referring to system
    libraries. Added tests/filter_xml_frames to do that.
(4) Adjust .exp files as needed
(5) Do not ship stdout.exp for memcheck/tests/threadname[_xml].

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13557

12 years agoVG_(memset) cannot handle NULL pointers and needs to be guarded.
Florian Krohm [Mon, 16 Sep 2013 21:46:31 +0000 (21:46 +0000)] 
VG_(memset) cannot handle NULL pointers and needs to be guarded.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13556

12 years agoInclude pub_core/tool_clreq.h instead of valgrind.h where apropriate.
Florian Krohm [Mon, 16 Sep 2013 20:56:35 +0000 (20:56 +0000)] 
Include pub_core/tool_clreq.h instead of valgrind.h where apropriate.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13555

12 years agomips: clean-up in hardware detection
Petar Jovanovic [Mon, 16 Sep 2013 18:16:13 +0000 (18:16 +0000)] 
mips: clean-up in hardware detection

Follow up to VEX r2764.
Add detection of Cavium in /proc/cpuinfo, and test for DSP ASEs only for
platforms with Company ID == MIPS.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13554

12 years agomips: clean-up in hardware detection (Cavium/DSP ASEs)
Petar Jovanovic [Mon, 16 Sep 2013 18:11:59 +0000 (18:11 +0000)] 
mips: clean-up in hardware detection (Cavium/DSP ASEs)

This change is a clean up in MIPS hardware detection code.
New flag for Cavium Company ID is added, as well as the codes for 34K and
74K processors (MIPS Company ID). The later two represent platforms with DSP
ASEs implemented (Rev 1 and Rev 2 respectively). Macros to detect these two
platforms have been added as well.

Additional macros to extract Company ID out of hwcaps added as well, and
used where possible.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2764

12 years agoIntercept prctl(PR_SET_NAME, name) and store the thread name so it
Florian Krohm [Mon, 16 Sep 2013 17:08:50 +0000 (17:08 +0000)] 
Intercept prctl(PR_SET_NAME, name) and store the thread name so it
can be used in error messages. That should be helpful when debugging
multithreaded applications.
Patch by Matthias Schwarzott <zzam@gentoo.org> with some minor
modifications. Fixes BZ 322254.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13553

12 years agomips32: typo error fix.
Dejan Jevtic [Mon, 16 Sep 2013 10:48:25 +0000 (10:48 +0000)] 
mips32: typo error fix.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13552

12 years agomips32: small cleanup in show_hwcaps_mips32
Petar Jovanovic [Sun, 15 Sep 2013 23:38:39 +0000 (23:38 +0000)] 
mips32: small cleanup in show_hwcaps_mips32

Small cleanup in show_hwcaps_mips32(). More will follow as we need to add
support for Cavium boards too.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2763

12 years agomips32/mips64: rename mips32_features to mips_features
Petar Jovanovic [Sun, 15 Sep 2013 22:49:01 +0000 (22:49 +0000)] 
mips32/mips64: rename mips32_features to mips_features

As this file is now detecting mips64/Cavium boards, we are renaming it to
reflect that. The functional change is that mips_features now can detect
Cavium board and allow Cavium-specific tests to be run.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13551

12 years agomips: flush the cache in perf/bigcode.c
Petar Jovanovic [Sun, 15 Sep 2013 22:16:38 +0000 (22:16 +0000)] 
mips: flush the cache in perf/bigcode.c

MIPS needs to flush the cache after memcpy in perf/bigcode.c.
Otherwise, the executed code will likely be wrong.

This fixes issues with bigcode test on some MIPS platforms.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13550

12 years agoFix coregrind header files such that they can be included without
Florian Krohm [Sun, 15 Sep 2013 13:54:34 +0000 (13:54 +0000)] 
Fix coregrind header files such that they can be included without
having to worry what other header files may have to be included
beforehand.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13549

12 years agoFix inclusion of header files in coregrind. No pub_tool_*.h should be
Florian Krohm [Sun, 15 Sep 2013 10:42:26 +0000 (10:42 +0000)] 
Fix inclusion of header files in coregrind. No pub_tool_*.h should be
included here.
Added pub_core_poolalloc.h and renamed pub_tool_inner.h to pub_core_inner.h.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13548

12 years agoFix include guard.
Florian Krohm [Sun, 15 Sep 2013 09:56:18 +0000 (09:56 +0000)] 
Fix include guard.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13547

12 years agoMove a function and its prototype VG_(malloc_effective_client_redzone_size)
Florian Krohm [Sun, 15 Sep 2013 09:18:03 +0000 (09:18 +0000)] 
Move a function and its prototype VG_(malloc_effective_client_redzone_size)
to a conceptually better place.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13546

12 years agos390: Add spechelper for s390_calculate_cc.
Florian Krohm [Fri, 13 Sep 2013 21:42:14 +0000 (21:42 +0000)] 
s390: Add spechelper for s390_calculate_cc.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2762

12 years agoBug 323893 - SSE3 not available on amd cpus in valgrind.
Mark Wielaard [Fri, 13 Sep 2013 13:30:45 +0000 (13:30 +0000)] 
Bug 323893 - SSE3 not available on amd cpus in valgrind.

Check minimum hardware capabilities, not exact matches to prevent
downgrading to baseline if the hardware has more capabilities than
we expect.

Note that this is still not exactly correct. CPUID should depend on
VEX capabilities, not on underlying CPU, see bug 324882.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2761

12 years agoclarify that vg-in-place cannot be used as an outer in outer/inner setup
Philippe Waroquiers [Thu, 12 Sep 2013 21:12:24 +0000 (21:12 +0000)] 
clarify that vg-in-place cannot be used as an outer in outer/inner setup
If you use a vg-in-place outer, then you obtain errors such as:
valgrind: mmap(0x38000000, 3293184) failed in UME with error 22 (Invalid argument).
valgrind: this can be caused by executables with very large text, data or bss segments.

What must be used is the "make install"-ed valgrind

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13545

12 years agoThe Power ISA 2.07 document includes a correction to the description for the
Carl Love [Thu, 12 Sep 2013 17:38:13 +0000 (17:38 +0000)] 
The Power ISA 2.07 document includes a correction to the description for the
behavior of the xscvspdp instruction, indicating that if the source argument
is a SNaN, it is first changed to a QNaN before being converted from
single-precision to double-precision. This updated information about the
xscvspdp instruction exposed a bug in the VEX implementation for that
instruction and also a bug in the testing for all instructions having
special behavior for single-precision SNaN arguments.

The VEX code fix for this issue is r2760.

This patch fixes the test cases for the ISA 2.07.

Testing bug: In several ppc[64] test cases, an array of special
double-precision floating point values is set up, and then all elements of
that array are copied via assignment to a single-precision array ('float'
type). Assignment from a double to a float works fine for all cases, except for
SNaN values. In the case of a SNaN, the source is changed to a QNaN and then
converted to single-precision. So the end result was that our array of floats
did not have an actual SNaN value, and, therefore, any instructions that had
special behavior for a single-precision SNaN input argument was never being
properly tested. This patch makes some functional changes in the following
testcases:

  none/tests/ppc[32|64]/test_isa_2_06_part2.c
  none/tests/ppc[32|64]/test_isa_2_06_part3.c
  none/tests/ppc[32|64]/test_isa_2_07_part2.c

These changes impacted the associated *.stdout.exp files, so the patch also
updates those files. Additionally, there were several errors in testcase
source comments that misidentified QNaN and SNaN bit patterns which this patch
corrects.

See bugzilla 324816.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13544

12 years agoThe Power ISA 2.07 document includes a correction to the description for the
Carl Love [Thu, 12 Sep 2013 17:26:42 +0000 (17:26 +0000)] 
The Power ISA 2.07 document includes a correction to the description for the
behavior of the xscvspdp instruction, indicating that if the source argument
is a SNaN, it is first changed to a QNaN before being converted from
single-precision to double-precision. This updated information about the
xscvspdp instruction exposed a bug in the VEX implementation for that
instruction and also a bug in the testing for all instructions having
special behavior for single-precision SNaN arguments.

This patch fixes both the VEX bug in xscvspdp implementation:
The current implementation of xscvspdp emulates the instruction by
extracting the single-precision floating point from the vector register,
storing it in single-prcision, and then loading the data just stored using
the lfsx instruction. But the lfsx instruction does not change SNaN input
arguments to QNaN inputs before conversion to double-precision, so this
emulation is not sufficient for the xscvspdp instruction as described in the
current documentation. This patch fixes that issue by recognizing a SNaN input
and changing it to a QNaN before performing the emulation using lfsx.
While fixing the bug in xscvspdp implementation, it was also discovered that
xvcvspdp had the same issue where SNaN inputs were not being handled correctly,
so this patch also fixes its implementation, too

See bugzilla 324816.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2760

12 years agoUpdate bug status.
Julian Seward [Thu, 12 Sep 2013 16:02:37 +0000 (16:02 +0000)] 
Update bug status.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13543

12 years agoRemove dead code.
Florian Krohm [Thu, 12 Sep 2013 11:32:05 +0000 (11:32 +0000)] 
Remove dead code.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2759

12 years agoUpdate list of ignored files.
Florian Krohm [Wed, 11 Sep 2013 19:12:02 +0000 (19:12 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13542

12 years agoClarify wording.
Florian Krohm [Wed, 11 Sep 2013 18:43:26 +0000 (18:43 +0000)] 
Clarify wording.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13541

12 years agoEnhance ado_treebuild_BB to allow an expression preceding a Put
Florian Krohm [Wed, 11 Sep 2013 17:58:32 +0000 (17:58 +0000)] 
Enhance ado_treebuild_BB to allow an expression preceding a Put
statement and containing one or more Get expressions to be
substituted in an expression following the Put statement.
That transformation is harmless as long as the guest state areas being
accessed by the Put and Get(s) do not overlap.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2758

12 years agomips64: add extra test cases in vbit-test for mips64.
Dejan Jevtic [Wed, 11 Sep 2013 15:35:33 +0000 (15:35 +0000)] 
mips64: add extra test cases in vbit-test for mips64.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13540

12 years agomips64: fixed problem with Iop's for mips64.
Dejan Jevtic [Wed, 11 Sep 2013 15:34:37 +0000 (15:34 +0000)] 
mips64: fixed problem with Iop's for mips64.

Fixed problem with some Iop's that was discovered while running vbit-test
on mips64. Fixed operations are: Iop_1Uto64, Iop_Left64 and Iop_CmpwNEZ64.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2757

12 years agoBugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Carl Love [Tue, 10 Sep 2013 19:01:00 +0000 (19:01 +0000)] 
Bugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Power ISA 2.07. The first bugzilla in the series was: 322294: Add initial
support for IBM Power ISA 2.07

Phase 2 VEX commit 2756 added support for the following new instructions to
VEX/priv/guest_ppc_toIR.c:
 - lq, stq, lqarx, stqcx.
 - mfvsrwz, mtvsrwz
 - fmrgew, fmrgow

This commit adds the corresponding test cases for these instructions.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13539

12 years agoBugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Carl Love [Tue, 10 Sep 2013 18:46:40 +0000 (18:46 +0000)] 
Bugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Power ISA 2.07. The first bugzilla in the series was: 322294: Add initial
support for IBM Power ISA 2.07

Phase 2 adds support for the following new instructions to
VEX/priv/guest_ppc_toIR.c:
 - lq, stq, lqarx, stqcx.
 - mfvsrwz, mtvsrwz
 - fmrgew, fmrgow

There is a corresponding test case for these instructions, see the bugzilla
for the commit number.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2756

12 years agoFix a bug introduced in the previous revision.
Florian Krohm [Tue, 10 Sep 2013 14:00:45 +0000 (14:00 +0000)] 
Fix a bug introduced in the previous revision.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13538

12 years agoAdd a few more optimisations for CmpwNEZ64, CmpNEZ32, and CmpNEZ64.
Florian Krohm [Fri, 6 Sep 2013 23:13:39 +0000 (23:13 +0000)] 
Add a few more optimisations for CmpwNEZ64, CmpNEZ32, and CmpNEZ64.
Observed on s390.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2755

12 years agoThe existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
Carl Love [Fri, 6 Sep 2013 22:29:55 +0000 (22:29 +0000)] 
The existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
under the case PPCG_FLAG_OP_MULLW: does not apply to the mulldo as we need to
detect overflow when performing a Multiply Low Doubleword (not Multiply Low
Word). Hence, we added a new enumeration value PPCG_FLAG_OP_MULLD in
VEX/priv/guest_ppc_defs.h and a corresponding new case under which the
computation for detecting overflow for mulldo/mulldo. is added in
set_XER_OV_64(). The tests have been added to: none/tests/ppc32/jm-insns.c

Vex commit 2754 for the source code fix

This commit adds the test cases.

Bugzilla 324594, submitted by Anmol P. Paralkar

Patch reviewed and tested by Carl Love

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13537

12 years agoThe existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
Carl Love [Fri, 6 Sep 2013 22:27:34 +0000 (22:27 +0000)] 
The existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
under the case PPCG_FLAG_OP_MULLW: does not apply to the mulldo as we need to
detect overflow when performing a Multiply Low Doubleword (not Multiply Low
Word). Hence, we added a new enumeration value PPCG_FLAG_OP_MULLD in
VEX/priv/guest_ppc_defs.h and a corresponding new case under which the
computation for detecting overflow for mulldo/mulldo. is added in
set_XER_OV_64(). The tests have been added to: none/tests/ppc32/jm-insns.c

Bugzilla 324594, submitted by Anmol P. Paralkar

Patch reviewed and tested by Carl Love

git-svn-id: svn://svn.valgrind.org/vex/trunk@2754

12 years agoThe patch used the binary constants 0b10000 and 0b10001. The 0b designator
Carl Love [Fri, 6 Sep 2013 16:49:42 +0000 (16:49 +0000)] 
The patch used the binary constants 0b10000 and 0b10001.  The 0b designator
is supported by the GCC extensions but not all compilers seem to support the
0b extension in GCC.  Therefore, the binary constats were changed to their
equivalent hex values as suggested by Florian.

The Bugzilla for the change is 324518.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2753

12 years agoUpdate list of ignored files.
Florian Krohm [Fri, 6 Sep 2013 15:04:39 +0000 (15:04 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2752

12 years agoUpdate list of ignored files.
Florian Krohm [Fri, 6 Sep 2013 15:03:36 +0000 (15:03 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13536

12 years agoOops, forgot to add the new files before the commit for r13534.
Carl Love [Thu, 5 Sep 2013 21:22:37 +0000 (21:22 +0000)] 
Oops, forgot to add the new files before the commit for r13534.

Bugzilla 324518

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13535

12 years agoThe current VEX code is not properly handling a non-zero TH field in the
Carl Love [Thu, 5 Sep 2013 19:50:41 +0000 (19:50 +0000)] 
The current VEX code is not properly handling a non-zero TH field in the
dcbt instruction, which is valid for several forms of data cache block
touch instructions.  The VEX commit 2761 fixed the missing support in
VEX/priv/guest_ppc_toIR.c.  This commit adds tests for the the non-zero
fields to the test cases for 32 and 64-bit modes.

Bugzilla 324518

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13534

12 years agoThe current code is not properly handling a non-zero TH field in the
Carl Love [Thu, 5 Sep 2013 19:47:40 +0000 (19:47 +0000)] 
The current code is not properly handling a non-zero TH field in the
dcbt instruction, which is valid for several forms of data cache block
touch instructions.  This patch adds the needed support to
VEX/priv/guest_ppc_toIR.c.

Bugzilla 324518

git-svn-id: svn://svn.valgrind.org/vex/trunk@2751

12 years agoThe flag for compiling test none/tests/ppc32/test_isa_2_07_part2.c was
Carl Love [Thu, 5 Sep 2013 17:59:03 +0000 (17:59 +0000)] 
The flag for compiling test none/tests/ppc32/test_isa_2_07_part2.c was
incorrectly set to FLAG_M64 instead of FLAG_M32.  Fixed the flag.  The
issue was reported in Bugzilla 324546.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13533

12 years agoFix 324514 gdbserver monitor cmd output behaviour consistency + allow user
Philippe Waroquiers [Wed, 4 Sep 2013 21:42:43 +0000 (21:42 +0000)] 
Fix 324514  gdbserver monitor cmd output behaviour consistency + allow user
            to put a "marker" msg in process log output

* v.info n_errs_found accepts optional msg, added in the output of
   the monitor command.

* use VG_(printf) rather than VG_(gdb_printf) when output of command
  should be redirected according to v.set gdb_output|log_output|mixed_output

* also avoid calling gdb_printf in output sink processing
  to output zero bytes, as gdb_printf expects to have a null terminated
  string, which is not ensured when 0 bytes have to be output.

* some minor reformatting (replace char* xxx by char *xxx).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13532

12 years agoAdd a bunch of suppressions for 64-bit OSX 10.8 processes. This is a
Julian Seward [Wed, 4 Sep 2013 07:32:48 +0000 (07:32 +0000)] 
Add a bunch of suppressions for 64-bit OSX 10.8 processes.  This is a
huge kludge in that the right fix is to write proper syscall wrappers
for the new threading syscalls in 10.8, but that hasn't happened yet.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13531

12 years agoPRE(workq_ops): handle KI_WQOPS_QUEUE_REQTHREADS without complaining.
Julian Seward [Wed, 4 Sep 2013 07:31:10 +0000 (07:31 +0000)] 
PRE(workq_ops): handle KI_WQOPS_QUEUE_REQTHREADS without complaining.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13530

12 years agocheck_uuid_matches: fix infinite loop following rewrite of this
Julian Seward [Wed, 4 Sep 2013 06:17:44 +0000 (06:17 +0000)] 
check_uuid_matches: fix infinite loop following rewrite of this
function during big overhaul of the debuginfo reader earlier this
year.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13529

12 years agodeltaIRExpr cannot handle Iex_VECRET and Iex_BBPTR and
Florian Krohm [Tue, 3 Sep 2013 21:48:02 +0000 (21:48 +0000)] 
deltaIRExpr cannot handle Iex_VECRET and Iex_BBPTR and
needs to be guarded.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2750