]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
13 years agoNEWS: add information about post-3.7.0 DRD changes
Bart Van Assche [Sat, 16 Jun 2012 19:02:25 +0000 (19:02 +0000)] 
NEWS: add information about post-3.7.0 DRD changes

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

13 years agodrd manual: Update according to post-3.7.0 changes
Bart Van Assche [Sat, 16 Jun 2012 18:51:16 +0000 (18:51 +0000)] 
drd manual: Update according to post-3.7.0 changes

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

13 years agomemcheck/tests/strchr: Add expected output for openSUSE 12.1
Bart Van Assche [Sat, 16 Jun 2012 18:50:04 +0000 (18:50 +0000)] 
memcheck/tests/strchr: Add expected output for openSUSE 12.1

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

13 years agoFix order of % versus * in memalign2.c new checks introduced in 12642
Philippe Waroquiers [Fri, 15 Jun 2012 22:57:40 +0000 (22:57 +0000)] 
Fix order of % versus * in memalign2.c new checks introduced in 12642
(spotted by Florian eagle eyes)

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

13 years agoFix 203877 and 301229 increase to 16Mb maximum allowed alignment for memalign() and...
Philippe Waroquiers [Fri, 15 Jun 2012 22:19:59 +0000 (22:19 +0000)] 
Fix 203877 and 301229 increase to 16Mb maximum allowed alignment for memalign() and posix_memalign
Note that VG_(arena_memalign) is not used by core or tools for the moment.
We have one single maxima for both the V core/tools and the client.
Enhanced memcheck/tests/memalign2.c to test 4 Mb and 16 Mb alignments.

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

13 years agoFix a few issues as reported by the BEAM tool.
Florian Krohm [Fri, 15 Jun 2012 20:55:43 +0000 (20:55 +0000)] 
Fix a few issues as reported by the BEAM tool.
Patch by Carl Love (cel@linux.vnet.ibm.com).

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

13 years agoAdd a hack (disabled by default) that attempts to unwind the stack on
Julian Seward [Fri, 15 Jun 2012 16:20:23 +0000 (16:20 +0000)] 
Add a hack (disabled by default) that attempts to unwind the stack on
ARM by simply scanning up and looking for words that look like they
might be return addresses.  Last-ditch hack for when the CFI trail
goes cold.

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

13 years agoUpdate.
Julian Seward [Fri, 15 Jun 2012 15:48:24 +0000 (15:48 +0000)] 
Update.

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

13 years agoAdd a CPUID emulation which announces AVX support, but don't enable it
Julian Seward [Fri, 15 Jun 2012 15:48:07 +0000 (15:48 +0000)] 
Add a CPUID emulation which announces AVX support, but don't enable it
yet.

Add support for the following instructions:

0F 01 D0 = XGETBV
VPUNPCKHQDQ r/m, rV, r ::: r = interleave-hi-64bitses(rV, r/m)
VPSRAW imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 71 /4 ib
VSTMXCSR m32 = VEX.LZ.0F.WIG AE /3
VLDMXCSR m32 = VEX.LZ.0F.WIG AE /2
VPMULHW xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG E5 /r
VPERMILPS imm8, ymm2/m256, ymm1 = VEX.256.66.0F3A.W0 04 /r ib

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

13 years agoUpdate.
Julian Seward [Thu, 14 Jun 2012 23:32:44 +0000 (23:32 +0000)] 
Update.

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

13 years agoFill in some missing AVX insns:
Julian Seward [Thu, 14 Jun 2012 23:32:02 +0000 (23:32 +0000)] 
Fill in some missing AVX insns:

VANDPS = VEX.NDS.256.0F.WIG 54 /r
VANDNPD = VEX.NDS.256.66.0F.WIG 55 /r
ANDNPS = VEX.NDS.256.0F.WIG 55 /r
VORPD = VEX.NDS.256.66.0F.WIG 56 /r
VORPS = VEX.NDS.256.0F.WIG 56 /r
VXORPS = VEX.NDS.256.0F.WIG 57 /r
VDIVPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 5E /r

Modified version of a patch by Jakub Jelinek, jakub@redhat.com
(bug 273475 comment 96)

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

13 years agoHave the inner Valgrind registering the interim_stack asap.
Philippe Waroquiers [Thu, 14 Jun 2012 22:18:50 +0000 (22:18 +0000)] 
Have the inner Valgrind registering the interim_stack asap.
This is needed to have the outer valgrind able to do stack
traces of the inner Valgrind before the main thread runs.
Without this, the outer crashes (segv) when doing a stack trace.
In mtV.txt, an ugly kludge was described to avoid this crash.
This is the clean solution replacing the kludge.

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

13 years agoFix assert in gdbserver for watchpoints watching the same address
Philippe Waroquiers [Thu, 14 Jun 2012 19:56:20 +0000 (19:56 +0000)] 
Fix assert in gdbserver for watchpoints watching the same address

GDB can create watchpoints watching the same address.
This was causing assertion failures.
To handle this, hash table (with key watched address) is replaced
by an xarray of address/lengh/kind.
Fully identical watches are ignored (either not inserted, and
not causing a problem if already deleted).

gdbserver_tests/mcwatchpoint enhanced to test duplicated watchpoints

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

13 years agoUpdate.
Julian Seward [Thu, 14 Jun 2012 08:52:11 +0000 (08:52 +0000)] 
Update.

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

13 years agoImplement even more insns created by gcc-4.7.0 -mavx -O3.
Julian Seward [Thu, 14 Jun 2012 08:51:35 +0000 (08:51 +0000)] 
Implement even more insns created by gcc-4.7.0 -mavx -O3.

VMOVHPD m64, xmm1, xmm2 = VEX.NDS.128.66.0F.WIG 16 /r
VMOVAPS ymm2/m256, ymm1 = VEX.256.0F.WIG 28 /r
VCVTPD2PS ymm2/m256, xmm1 = VEX.256.66.0F.WIG 5A /r
VPUNPCKHDQ = VEX.NDS.128.66.0F.WIG 6A /r
VPCMPEQW r/m, rV, r ::: r = rV `eq-by-16s` r/m
VPSUBUSW xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG D9 /r
VCVTDQ2PD xmm2/m128, ymm1 = VEX.256.F3.0F.WIG E6 /r
VPADDB r/m, rV, r ::: r = rV + r/m
VBROADCASTSS m32, xmm1 = VEX.128.66.0F38.W0 18 /r
VPMOVSXBW xmm2/m64, xmm1
VPMOVSXWD xmm2/m64, xmm1
VPMOVSXDQ xmm2/m64, xmm1

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

13 years agoUpdate with recent notes.
Julian Seward [Wed, 13 Jun 2012 11:12:49 +0000 (11:12 +0000)] 
Update with recent notes.

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

13 years agoChange the V output file name from out-V to out-VAL.
Julian Seward [Wed, 13 Jun 2012 11:12:06 +0000 (11:12 +0000)] 
Change the V output file name from out-V to out-VAL.

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

13 years agoUpdate.
Julian Seward [Wed, 13 Jun 2012 11:11:10 +0000 (11:11 +0000)] 
Update.

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

13 years agoImplement even more instructions generated by "gcc-4.7.0 -mavx -O3".
Julian Seward [Wed, 13 Jun 2012 11:10:20 +0000 (11:10 +0000)] 
Implement even more instructions generated by "gcc-4.7.0 -mavx -O3".
This is the first point at which coverage for -O3 generated code could
be construed as "somewhat usable".

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

13 years agoUpdate.
Julian Seward [Tue, 12 Jun 2012 15:00:00 +0000 (15:00 +0000)] 
Update.

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

13 years agoImplement a bunch more AVX instructions generated by "gcc-4.7.0 -mavx -O3":
Julian Seward [Tue, 12 Jun 2012 14:59:17 +0000 (14:59 +0000)] 
Implement a bunch more AVX instructions generated by "gcc-4.7.0 -mavx -O3":

VPSLLQ  imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 73 /6 ib
VPEXTRW imm8, xmm1, reg32 = VEX.128.66.0F.W0 C5 /r ib
VPMINUB xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG DA /r
VPMAXUB xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG DE /r
VPMINSW r/m, rV, r ::: r = min-signed16s(rV, r/m)
VPMAXSW r/m, rV, r ::: r = max-signed16s(rV, r/m)
VPMULUDQ xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG F4 /r
VPMINSB r/m, rV, r ::: r = min-signed-8s(rV, r/m)
VPMINUW r/m, rV, r ::: r = min-unsigned-16s(rV, r/m)
VPMINUD r/m, rV, r ::: r = min-unsigned-32s(rV, r/m)
VPMAXSB r/m, rV, r ::: r = max-signed-8s(rV, r/m)
VPMAXUW r/m, rV, r ::: r = max-unsigned-16s(rV, r/m)
VPMAXUD r/m, rV, r ::: r = max-unsigned-32s(rV, r/m)
VPMULLD r/m, rV, r ::: r = mul-32s(rV, r/m)
VPHMINPOSUW xmm2/m128, xmm1 = VEX.128.66.0F38.WIG 41 /r
VPERMILPD imm8, ymm2/m256, ymm1 = VEX.256.66.0F3A.W0 05 /r ib
VPERMILPD imm8, xmm2/m128, xmm1 = VEX.128.66.0F3A.W0 05 /r ib
VPERM2F128 imm8, ymm3/m256, ymm2, ymm1 = VEX.NDS.66.0F3A.W0 06 /r ib
VPEXTRB imm8, xmm2, reg/m8 = VEX.128.66.0F3A.W0 14 /r ib

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

13 years agoUpdate.
Julian Seward [Tue, 12 Jun 2012 08:46:09 +0000 (08:46 +0000)] 
Update.

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

13 years agoMake a start at implementing 256-bit AVX instructions generated by
Julian Seward [Tue, 12 Jun 2012 08:45:39 +0000 (08:45 +0000)] 
Make a start at implementing 256-bit AVX instructions generated by
"gcc-4.7.0 -mavx -O3":

VMOVUPD xmm2/m128, xmm1 = VEX.128.66.0F.WIG 10 /r
VMOVUPS xmm2/m128, xmm1 = VEX.128.0F.WIG 10 /r
VUNPCKHPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 15 /r
VUNPCKLPD xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG 14 /r
VUNPCKHPD xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG 15 /r
VADDPS ymm3/m256, ymm2, ymm1 = VEX.NDS.256.0F.WIG 58 /r
VADDPD xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG 58 /r
VADDPD ymm3/m256, ymm2, ymm1 = VEX.NDS.256.66.0F.WIG 58 /r
VMULPS ymm3/m256, ymm2, ymm1 = VEX.NDS.256.0F.WIG 59 /r
VMULPD xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG 59 /r
VMULPD ymm3/m256, ymm2, ymm1 = VEX.NDS.256.66.0F.WIG 59 /r
VSUBPS ymm3/m256, ymm2, ymm1 = VEX.NDS.256.0F.WIG 5C /r
VSUBPD xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG 5C /r
VSUBPD ymm3/m256, ymm2, ymm1 = VEX.NDS.256.66.0F.WIG 5C /r
VDIVPS ymm3/m256, ymm2, ymm1 = VEX.NDS.256.0F.WIG 5E /r
VDIVPD ymm3/m256, ymm2, ymm1 = VEX.NDS.256.66.0F.WIG 5E /r
VPSRLQ  imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 73 /2 ib
VPCMPEQQ = VEX.NDS.128.66.0F38.WIG 29 /r
VPCMPGTQ = VEX.NDS.128.66.0F38.WIG 37 /r
VPEXTRQ = VEX.128.66.0F3A.W1 16 /r ib

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

13 years ago16-bit Thumb PUSH and POP: fix incorrect assertions.
Julian Seward [Mon, 11 Jun 2012 21:54:58 +0000 (21:54 +0000)] 
16-bit Thumb PUSH and POP: fix incorrect assertions.

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

13 years agoAvoid unused warning for ptrace_write_memory in vgdb.c (only used on some platforms)
Philippe Waroquiers [Sun, 10 Jun 2012 12:26:26 +0000 (12:26 +0000)] 
Avoid unused warning for ptrace_write_memory in vgdb.c (only used on some platforms)

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

13 years agodrd: Don't sporadically report false positives on newly allocated memory. Fixes ...
Bart Van Assche [Sun, 10 Jun 2012 10:44:05 +0000 (10:44 +0000)] 
drd: Don't sporadically report false positives on newly allocated memory. Fixes #297147.

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

13 years agoAdd a stackframe around function call. Avoids testcase hangs
Florian Krohm [Sat, 9 Jun 2012 16:19:31 +0000 (16:19 +0000)] 
Add a stackframe around function call. Avoids testcase hangs
when compiled with -O3. Found and debugged by Christian.

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

13 years agoFix typo/merge problem (replace s390x by mips32 in target.c)
Philippe Waroquiers [Sat, 9 Jun 2012 09:31:43 +0000 (09:31 +0000)] 
Fix typo/merge problem (replace s390x by mips32 in target.c)

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

13 years agoUpdate Subversion ignore lists
Bart Van Assche [Sat, 9 Jun 2012 06:33:44 +0000 (06:33 +0000)] 
Update Subversion ignore lists

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

13 years agoAdjusting the svn:executable property on none/tests/mips32/filter_stderr.
Petar Jovanovic [Sat, 9 Jun 2012 01:56:58 +0000 (01:56 +0000)] 
Adjusting the svn:executable property on none/tests/mips32/filter_stderr.

vg_regtest failed on MIPS as filter_stderr was not an executable.
MIPS port is currently tracked as bug #270777.

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

13 years agoAmend do_shadow_Dirty and do_origins_Dirty so they no longer assert
Florian Krohm [Fri, 8 Jun 2012 16:01:19 +0000 (16:01 +0000)] 
Amend do_shadow_Dirty and do_origins_Dirty so they no longer assert
if the helper call touches an odd number of bytes in memory.

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

13 years agoavoid gcc warning regarding local/global variable shadowing in cdsg test
Christian Borntraeger [Fri, 8 Jun 2012 07:13:17 +0000 (07:13 +0000)] 
avoid gcc warning regarding local/global variable shadowing in cdsg test

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

13 years agos390: also fix the memcheck testcase for cdsg regarding alignment
Christian Borntraeger [Fri, 8 Jun 2012 06:59:33 +0000 (06:59 +0000)] 
s390: also fix the memcheck testcase for cdsg regarding alignment

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

13 years agodrd: Add a suppression pattern
Bart Van Assche [Fri, 8 Jun 2012 06:59:18 +0000 (06:59 +0000)] 
drd: Add a suppression pattern

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

13 years agoCDSG needs quad word (16 byte) aligned data structures. Since the stack
Christian Borntraeger [Fri, 8 Jun 2012 06:39:43 +0000 (06:39 +0000)] 
CDSG needs quad word (16 byte) aligned data structures. Since the stack
on s390 has only 8 byte alignment gcc cant guarantee 16 byte alignment
for local variables. As a global variable gcc can do that.

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

13 years agoSmall improvement for getIReg on MIPS when reading from r0.
Petar Jovanovic [Thu, 7 Jun 2012 16:52:41 +0000 (16:52 +0000)] 
Small improvement for getIReg on MIPS when reading from r0.

zero register on MIPS is actually a constant, and front end should be aware of
that. MIPS port is currently tracked as bug #270777.

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

13 years agomips32-linux port: add missing (empty) stderr.exp files.
Julian Seward [Thu, 7 Jun 2012 11:38:40 +0000 (11:38 +0000)] 
mips32-linux port: add missing (empty) stderr.exp files.

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

13 years agoMerge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
Julian Seward [Thu, 7 Jun 2012 09:32:40 +0000 (09:32 +0000)] 
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

Valgrind: new non-test files for mips32-linux.

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

13 years agoMerge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
Julian Seward [Thu, 7 Jun 2012 09:23:23 +0000 (09:23 +0000)] 
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

Valgrind: new non-test files for mips32-linux.

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

13 years agoMerge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
Julian Seward [Thu, 7 Jun 2012 09:13:21 +0000 (09:13 +0000)] 
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

Valgrind: changes to existing files.

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

13 years agoMerge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
Julian Seward [Thu, 7 Jun 2012 08:59:53 +0000 (08:59 +0000)] 
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

VEX: new files for mips32.

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

13 years agoMerge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
Julian Seward [Thu, 7 Jun 2012 08:51:02 +0000 (08:51 +0000)] 
Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

VEX: changes to existing files.

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

13 years agoFix a copy'n paste error spotted by Julian.
Florian Krohm [Wed, 6 Jun 2012 12:53:14 +0000 (12:53 +0000)] 
Fix a copy'n paste error spotted by Julian.

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

13 years agoFix debug printing of s390 V-insns. Alu ops and such are 2-address insns
Florian Krohm [Wed, 6 Jun 2012 02:44:53 +0000 (02:44 +0000)] 
Fix debug printing of s390 V-insns. Alu ops and such are 2-address insns

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

13 years agoSupport "compare double ansd swap" insns: CDS, CDSY, and CDSG
Florian Krohm [Wed, 6 Jun 2012 02:27:51 +0000 (02:27 +0000)] 
Support "compare double ansd swap" insns: CDS, CDSY, and CDSG
valgrind bits for fixing bugzilla #291865. See also VEX r2372.

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

13 years agoSupport "compare double ansd swap" insns: CDS, CDSY, and CDSG
Florian Krohm [Wed, 6 Jun 2012 02:26:01 +0000 (02:26 +0000)] 
Support "compare double ansd swap" insns: CDS, CDSY, and CDSG
VEX bits for fixing bugzilla #291865

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

13 years agoFixes for 'make dist'.
Julian Seward [Tue, 5 Jun 2012 11:10:19 +0000 (11:10 +0000)] 
Fixes for 'make dist'.

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

13 years agoAdd macros I_REPLACE_SONAME_FNNAME_Z{U,Z} for general end-user use.
Julian Seward [Tue, 5 Jun 2012 07:12:15 +0000 (07:12 +0000)] 
Add macros I_REPLACE_SONAME_FNNAME_Z{U,Z} for general end-user use.
The I_WRAP_SONAME_FNNAME_Z{U,Z} equivalents have been present for
years.  Seems inconsistent for the REPLACE versions to be missing.

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

13 years agoUpdate.
Julian Seward [Tue, 5 Jun 2012 00:32:51 +0000 (00:32 +0000)] 
Update.

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

13 years agoConvert avx-1 into a proper regression test.
Julian Seward [Tue, 5 Jun 2012 00:31:49 +0000 (00:31 +0000)] 
Convert avx-1 into a proper regression test.

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

13 years agoFix breakage I introduced in r12609, sigh.
Julian Seward [Tue, 5 Jun 2012 00:30:24 +0000 (00:30 +0000)] 
Fix breakage I introduced in r12609, sigh.

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

13 years agoAdd feature testing for AVX. Also make the return values into named
Julian Seward [Mon, 4 Jun 2012 07:39:30 +0000 (07:39 +0000)] 
Add feature testing for AVX.  Also make the return values into named
constants.

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

13 years agodis_AVX128_E_V_to_G is a special case of
Julian Seward [Mon, 4 Jun 2012 07:38:10 +0000 (07:38 +0000)] 
dis_AVX128_E_V_to_G is a special case of
dis_VEX_NDS_128_AnySimdPfx_0F_WIG_simple, so implement the former by
calling the latter.

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

13 years agoUpdate.
Julian Seward [Sun, 3 Jun 2012 23:14:23 +0000 (23:14 +0000)] 
Update.

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

13 years agoUpdate.
Julian Seward [Sun, 3 Jun 2012 23:13:08 +0000 (23:13 +0000)] 
Update.

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

13 years agoImplement
Julian Seward [Sun, 3 Jun 2012 23:12:33 +0000 (23:12 +0000)] 
Implement
   VMOVUPD ymm2/m256, ymm1 = VEX.256.66.0F.WIG 10 /r
   VMOVUPD ymm1, ymm2/m256 = VEX.256.66.0F.WIG 11 /r

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

13 years agoMove VEX_HWCAPS_PPC32_DFP to a more logical place.
Julian Seward [Sun, 3 Jun 2012 23:11:49 +0000 (23:11 +0000)] 
Move VEX_HWCAPS_PPC32_DFP to a more logical place.

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

13 years agoIf we are doing cache simulation, refuse to start at all if the minimum
Julian Seward [Sun, 3 Jun 2012 23:10:55 +0000 (23:10 +0000)] 
If we are doing cache simulation, refuse to start at all if the minimum
cache line size is smaller than the maximum guest register size.

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

13 years agom_machine: add new function VG_(machine_get_size_of_largest_guest_register)
Julian Seward [Sun, 3 Jun 2012 22:40:07 +0000 (22:40 +0000)] 
m_machine: add new function VG_(machine_get_size_of_largest_guest_register)
cachegrind: use the new function to abort startup if the minumum line
  size is smaller than the size of the largest guest register.
Partially derived from a patch by Josef Weidendorfer.

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

13 years agoTweak testcase. Invalidate cc, making sure it is set later.
Florian Krohm [Sun, 3 Jun 2012 22:37:15 +0000 (22:37 +0000)] 
Tweak testcase. Invalidate cc, making sure it is set later.

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

13 years agoFix two Binop / Unop mixups.
Florian Krohm [Sun, 3 Jun 2012 02:10:08 +0000 (02:10 +0000)] 
Fix two Binop / Unop mixups.

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

13 years agoPOWER Processor decimal FP support, part 5. (Valgrind side). Bug #299694.
Julian Seward [Sat, 2 Jun 2012 23:48:06 +0000 (23:48 +0000)] 
POWER Processor decimal FP support, part 5.  (Valgrind side).  Bug #299694.
(Carl Love, carll@us.ibm.com and Maynard Johnson, maynardj@us.ibm.com)

This patch adds support for Power Decimal Floating Point (DFP) . This
is the fifth patch set in the series of five to add the DFP
instruction support to Valgrind.  Adds support for the ddedpd,
ddedpdq, denbcd, denbcdq, dtstsf, and dtstsfq instructions.

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

13 years agoPOWER Processor decimal FP support, part 5 (VEX side). Bug #299694.
Julian Seward [Sat, 2 Jun 2012 23:47:02 +0000 (23:47 +0000)] 
POWER Processor decimal FP support, part 5 (VEX side).  Bug #299694.
(Carl Love, carll@us.ibm.com and Maynard Johnson, maynardj@us.ibm.com)

This patch adds support for Power Decimal Floating Point (DFP) . This
is the fifth patch set in the series of five to add the DFP
instruction support to Valgrind.  Adds support for the ddedpd,
ddedpdq, denbcd, denbcdq, dtstsf, and dtstsfq instructions.

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

13 years agoRippled from VEX r2366. Part of reducing size of IRExpr.
Florian Krohm [Sat, 2 Jun 2012 20:30:41 +0000 (20:30 +0000)] 
Rippled from VEX r2366. Part of reducing size of IRExpr.
These are the valgrind bits.

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

13 years agoPut the Triop member into a separate struct (IRTriop) and link to that
Florian Krohm [Sat, 2 Jun 2012 20:29:22 +0000 (20:29 +0000)] 
Put the Triop member into a separate struct (IRTriop) and link to that
from IRExpr.  Reduces size of IRExpr from 40 bytes to 32 bytes on LP64
and from 20 bytes to 16 bytes on ILP32.

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

13 years agoUpdate.
Julian Seward [Sat, 2 Jun 2012 11:55:52 +0000 (11:55 +0000)] 
Update.

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

13 years agoImplement
Julian Seward [Sat, 2 Jun 2012 11:55:25 +0000 (11:55 +0000)] 
Implement
   VMOVAPD ymm1, ymm2/m256 = VEX.256.66.0F.WIG 29 /r
   VMOVAPS ymm1, ymm2/m256 = VEX.256.0F.WIG 29 /r
   VPADDQ r/m, rV, r ::: r = rV + r/m
   VPSUBW r/m, rV, r ::: r = rV - r/m
   VPSUBQ = VEX.NDS.128.66.0F.WIG FB /r
   VPINSRQ r64/m64, xmm2, xmm1 = VEX.NDS.128.66.0F3A.W1 22 /r ib

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

13 years agoUpdate ignored files.
Florian Krohm [Sat, 2 Jun 2012 02:39:54 +0000 (02:39 +0000)] 
Update ignored files.

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

13 years agoFix a cut'n paste error.
Florian Krohm [Fri, 1 Jun 2012 22:04:27 +0000 (22:04 +0000)] 
Fix a cut'n paste error.

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

13 years agoRipple from VEX r2363. Part of reducing size of IRExpr.
Florian Krohm [Fri, 1 Jun 2012 20:43:03 +0000 (20:43 +0000)] 
Ripple from VEX r2363. Part of reducing size of IRExpr.

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

13 years agoPut the Qop member into a separate struct (IRQop) and link to that
Florian Krohm [Fri, 1 Jun 2012 20:41:24 +0000 (20:41 +0000)] 
Put the Qop member into a separate struct (IRQop) and link to that
from IRExpr.  Reduces size of IRExpr from 48 to 40 bytes on LP64.

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

13 years agoTrack the change to IRDirty guest state effect annotations introduced
Julian Seward [Fri, 1 Jun 2012 16:11:41 +0000 (16:11 +0000)] 
Track the change to IRDirty guest state effect annotations introduced
in vex r2362.

mc_translate.c: also do PCast 64->32 a bit more efficiently.

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

13 years agoEnhance the guest state effects notation on IRDirty calls, so as to be
Julian Seward [Fri, 1 Jun 2012 16:09:50 +0000 (16:09 +0000)] 
Enhance the guest state effects notation on IRDirty calls, so as to be
able to describe accesses to arrays of non-consecutive guest state
sections.  This is needed to describe the behaviour of FXSAVE and
FXRSTOR in an environment where we also support AVX.

The IRDirty struct has got smaller (112 bytes vs 136 before, for a 64
bit target) whilst holding more information.

The new facility is then used to describe said FXSAVE and FXRSTOR on
amd64.  For x86 there is no change since we don't model AVX state for
x86.

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

13 years agoAdd missing .exp files.
Florian Krohm [Fri, 1 Jun 2012 03:20:47 +0000 (03:20 +0000)] 
Add missing .exp files.

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

13 years agoReduce size of an IRStmt from 40 bytes to 32 bytes on LP64
Florian Krohm [Thu, 31 May 2012 15:48:13 +0000 (15:48 +0000)] 
Reduce size of an IRStmt from 40 bytes to 32 bytes on LP64
by allocating the details of a PutI statement into a struct
of its own and link to that (as is being done for Dirty and CAS).

These are the valgrind bits (see also VEX r2361).

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

13 years agoReduce size of an IRStmt from 40 bytes to 32 bytes on LP64
Florian Krohm [Thu, 31 May 2012 15:46:18 +0000 (15:46 +0000)] 
Reduce size of an IRStmt from 40 bytes to 32 bytes on LP64
by allocating the details of a PutI statement into a struct
of its own and link to that (as is being done for Dirty and CAS).

These are the VEX bits.

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

13 years agoAdd testcases for "compare and swap".
Florian Krohm [Wed, 30 May 2012 20:46:58 +0000 (20:46 +0000)] 
Add testcases for "compare and swap".

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

13 years agoFix MacOS passsigalrm.c compilation error due to SIGRTMIN not existing on MacOS
Philippe Waroquiers [Tue, 29 May 2012 17:04:13 +0000 (17:04 +0000)] 
Fix MacOS passsigalrm.c compilation error due to SIGRTMIN not existing on MacOS
The test will very probably fail on MacOS (as gdb output will contain SIGUSR1
rather than signal SIGRTMIN, but at least it should compile).
(not tested on MacOS; just tested that it still works on linux)

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

13 years agoFix machine detection on s390 to not bail out the regression
Christian Borntraeger [Tue, 29 May 2012 11:02:28 +0000 (11:02 +0000)] 
Fix machine detection on s390 to not bail out the regression
test on unknown systems.

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

13 years agoDocument the register(s) used for thread pointer
Philippe Waroquiers [Mon, 28 May 2012 16:55:35 +0000 (16:55 +0000)] 
Document the register(s) used for thread pointer

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

13 years agoLet valgrind check the tls argument if the appropriate flag is set
Christian Borntraeger [Mon, 28 May 2012 11:51:50 +0000 (11:51 +0000)] 
Let valgrind check the tls argument if the appropriate flag is set

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

13 years agoImprove cross referencing of gdbserver monitor commands
Philippe Waroquiers [Mon, 28 May 2012 08:56:24 +0000 (08:56 +0000)] 
Improve cross referencing of gdbserver monitor commands

Based on a suggestion and patch from Marc Bessieres
(marc.bessieres@gmail.com)

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

13 years agoAdd forgotten update. Should have been part of r2359.
Florian Krohm [Mon, 28 May 2012 03:10:02 +0000 (03:10 +0000)] 
Add forgotten update. Should have been part of r2359.

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

13 years agoCleanup after t-chaining changes.
Florian Krohm [Mon, 28 May 2012 02:58:19 +0000 (02:58 +0000)] 
Cleanup after t-chaining changes.

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

13 years agofix the warning introduced by fixing SETTLS clone flag PRE_READ logic
Philippe Waroquiers [Sun, 27 May 2012 20:21:02 +0000 (20:21 +0000)] 
fix the warning introduced by fixing SETTLS clone flag PRE_READ logic

on amd64, vki_modify_ldt_t was defined as void (not very clear why).
sizeof (void) cannot be taken (or more precisely can be taken,
but nobody knows what that means and what gcc does).
So, uncommended the (supposedly) correct definition of the type.
Note that I checked the definition on debian 6.0, kernel 2.6.32
and the structure is still ok.

Still needed to look at the other platforms not properly
handling the *SETTID and the SETTLS flags in clone PRE_READ
logic and/or not defining the type vki_modify_ldt_t

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

13 years agoUpdate a comment.
Florian Krohm [Sun, 27 May 2012 17:20:47 +0000 (17:20 +0000)] 
Update a comment.

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

13 years agoFix an out-of-date comment.
Florian Krohm [Sun, 27 May 2012 16:59:56 +0000 (16:59 +0000)] 
Fix an out-of-date comment.

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

13 years agoChange S390_INSN_HELPER_CALL such that returning a value is part
Florian Krohm [Sun, 27 May 2012 16:52:43 +0000 (16:52 +0000)] 
Change S390_INSN_HELPER_CALL such that returning a value is part
of the call. Previously, this was a separate insn.

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

13 years agoRemove, or (where it might later come in handy) comment out artefacts
Julian Seward [Sun, 27 May 2012 16:18:13 +0000 (16:18 +0000)] 
Remove, or (where it might later come in handy) comment out artefacts
for 256 bit (AVX) code generation on amd64.  Although that was the
plan at first, it turns out to be infeasible to generate 256 bit
instructions for the IR created by Memcheck's instrumentation of 256
bit Ity_V256 IR.  This is because it would require 256 bit integer
SIMD operations, and AVX as currently available only provides 256 bit
operations for floating point.  So, fall back to generating 256 IR
into 128-bit XMM register pairs, and using the existing SSE facilities
in the back end.  This change only affects the amd64 back end -- it
does not affect IR, which remains unchanged, and capable of
representing 256 bit vector operations wherever needed.

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

13 years agoAdd more test cases for VCMPSS, and reenable disabled tests for VCMPSD
Julian Seward [Sun, 27 May 2012 13:52:54 +0000 (13:52 +0000)] 
Add more test cases for VCMPSS, and reenable disabled tests for VCMPSD
and VEXTRACTF128, now that the implementation has been fixed.  Current
status that all so-far implemented AVX instructions are tested by this
file, and none have any detectable failures.

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

13 years agoFix the behaviour of VEXTRACTF128, VCMPSD and VCMPSS, all of which were
Julian Seward [Sun, 27 May 2012 13:50:42 +0000 (13:50 +0000)] 
Fix the behaviour of VEXTRACTF128, VCMPSD and VCMPSS, all of which were
identified as incorrectly implemented by avx-1.c.

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

13 years agoAdd tests for all AVX instructions implemented so far.
Julian Seward [Sun, 27 May 2012 08:26:49 +0000 (08:26 +0000)] 
Add tests for all AVX instructions implemented so far.

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

13 years agoImplement VINSERTPS imm8, xmm3/m32, xmm2, xmm1
Julian Seward [Sun, 27 May 2012 08:25:42 +0000 (08:25 +0000)] 
Implement VINSERTPS imm8, xmm3/m32, xmm2, xmm1
Fix VCVTPD2PS

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

13 years agoFix false positive in sys_clone on amd64 when optional args are not given (e.g. child...
Philippe Waroquiers [Sat, 26 May 2012 23:08:41 +0000 (23:08 +0000)] 
Fix false positive in sys_clone on amd64 when optional args are not given (e.g. child_tidptr)

rev 10493 fixed bug 117564 in syswrap-x86-linux.c.
This commit fixes the same problem in syswrap-amd64-linux.c.
The problem makes memcheck/tests/linux/stack_switch fails (at least on gcc20)
with unexpected
   ==802== Syscall param clone(child_tidptr) contains uninitialised byte(s)
The problem originates from always checking 3 optional args PRE_read,
while these should be checked only if the corresponding flags are set.

syswrap-{arm,ppc32,ppc64}-linux.c seems to have the same problem
(but no visible effect) : VKI_CLONE_PARENT_SETTID,VKI_CLONE_CHILD_SETTID
and VKI_CLONE_SETTLS not properly handled in the PRE part.

syswrap-s390x-linux.c seems to have the VKI_CLONE_SETTLS part wrong,
but VKI_CLONE_PARENT_SETTID and VKI_CLONE_CHILD_SETTID correct.

Commiting a fix just for amd64 for now.
We probably better make some common code in syswrap-generic.c
to regroup all similar platforms.

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

13 years agoTake advantage of compare immediate insns as more than half
Florian Krohm [Sat, 26 May 2012 01:59:21 +0000 (01:59 +0000)] 
Take advantage of compare immediate insns as more than half
of all comparisons are like that.

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

13 years agoAdd missing gdbserver xml files for shadow registers for ppc32
Philippe Waroquiers [Fri, 25 May 2012 23:22:39 +0000 (23:22 +0000)] 
Add missing gdbserver xml files for shadow registers for ppc32

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

13 years agoas vgdb not activated by default on android, need to fix the example
Philippe Waroquiers [Fri, 25 May 2012 22:36:01 +0000 (22:36 +0000)] 
as vgdb not activated by default on android, need to fix the example

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

13 years agoUpdate.
Julian Seward [Fri, 25 May 2012 15:53:37 +0000 (15:53 +0000)] 
Update.

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

13 years agoImplement
Julian Seward [Fri, 25 May 2012 15:53:01 +0000 (15:53 +0000)] 
Implement
   VPUNPCKLDQ r/m, rV, r ::: r = interleave-lo-dwords(rV, r/m)
   VPACKSSDW r/m, rV, r ::: r = QNarrowBin32Sto16Sx8(rV, r/m)
   VPUNPCKLQDQ r/m, rV, r ::: r = interleave-lo-64bitses(rV, r/m)
   VPSRLW imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 71 /2 ib
   VPADDW r/m, rV, r ::: r = rV + r/m
   VPINSRD r32/m32, xmm2, xmm1 = VEX.NDS.128.66.0F3A.W0 22 /r ib

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

13 years agoUpdate.
Julian Seward [Fri, 25 May 2012 13:51:33 +0000 (13:51 +0000)] 
Update.

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