]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
14 years agoFix incorrect implementation of VPERMILP{S,D} variable form.
Julian Seward [Thu, 21 Jun 2012 08:34:19 +0000 (08:34 +0000)] 
Fix incorrect implementation of VPERMILP{S,D} variable form.
(Jakub Jelinek, jakub@redhat.com), #273475 comment 128.

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

14 years agoMoving Iop_F64toI32S to correct (binary ops) place in iselWordExpr_R_wrk.
Petar Jovanovic [Wed, 20 Jun 2012 17:53:32 +0000 (17:53 +0000)] 
Moving Iop_F64toI32S to correct (binary ops) place in iselWordExpr_R_wrk.

In a previous commit (r2393), a break has been misplaced and caused two issues,
and that revelead that Iop_F64toI32S was in the wrong (unary op) case.
This fixes none/tests/mips32/round and memcheck/tests/vcpu_fnfns for MIPS.

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

14 years agoUpdate.
Julian Seward [Wed, 20 Jun 2012 11:46:42 +0000 (11:46 +0000)] 
Update.

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

14 years agoImplement
Julian Seward [Wed, 20 Jun 2012 11:46:19 +0000 (11:46 +0000)] 
Implement

VPERMILPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F38.W0 0C /r
VPERMILPS ymm3/m256, ymm2, ymm1 = VEX.NDS.256.66.0F38.W0 0C /r
VPERMILPD xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F38.W0 0D /r
VPERMILPD ymm3/m256, ymm2, ymm1 = VEX.NDS.256.66.0F38.W0 0D /r

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

14 years agoUpdate.
Julian Seward [Wed, 20 Jun 2012 10:21:22 +0000 (10:21 +0000)] 
Update.

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

14 years agoAdd support for
Julian Seward [Wed, 20 Jun 2012 10:21:05 +0000 (10:21 +0000)] 
Add support for

VMOVSLDUP xmm2/m128, xmm1 = VEX.NDS.128.F3.0F.WIG 12 /r
VMOVSLDUP ymm2/m256, ymm1 = VEX.NDS.256.F3.0F.WIG 12 /r
VMOVSHDUP xmm2/m128, xmm1 = VEX.NDS.128.F3.0F.WIG 16 /r
VMOVSHDUP ymm2/m256, ymm1 = VEX.NDS.256.F3.0F.WIG 16 /r

VMOVSS xmm3, xmm2, xmm1 = VEX.LIG.F3.0F.WIG 10 /r
VMOVSS xmm3, xmm2, xmm1 = VEX.LIG.F3.0F.WIG 11 /r

VPSLLW imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 71 /6 ib
VPSRAD imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 72 /4 ib

(Jakub Jelinek, jakub@redhat.com), #273475 comments 121, 122, 124

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

14 years agoAdding MIPS-specific wrapper for syscall pipe.
Petar Jovanovic [Tue, 19 Jun 2012 18:30:23 +0000 (18:30 +0000)] 
Adding MIPS-specific wrapper for syscall pipe.

Syscall pipe returns two descriptors in two registers, and thus a generic
Linux wrapper is not sufficient. This fixes none/tests/fdleak_pipe.
MIPS port is currently tracked as bug #270777.

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

14 years agoAdd some missing breaks as spotted by BEAM.
Julian Seward [Tue, 19 Jun 2012 16:33:47 +0000 (16:33 +0000)] 
Add some missing breaks as spotted by BEAM.

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

14 years agos390_insn_cdas_emit: comment out unused variable r3p1
Julian Seward [Tue, 19 Jun 2012 13:29:00 +0000 (13:29 +0000)] 
s390_insn_cdas_emit: comment out unused variable r3p1
(a relative of C3PO, perhaps?)

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

14 years agoMove new 256-bit FP Iops to a better place.
Julian Seward [Tue, 19 Jun 2012 06:57:59 +0000 (06:57 +0000)] 
Move new 256-bit FP Iops to a better place.

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

14 years agoUpdate.
Julian Seward [Mon, 18 Jun 2012 23:17:46 +0000 (23:17 +0000)] 
Update.

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

14 years agoMore AVX insns:
Julian Seward [Mon, 18 Jun 2012 23:15:16 +0000 (23:15 +0000)] 
More AVX insns:

VMOVUPS ymm2/m256, ymm1 = VEX.256.0F.WIG 10 /r
VSQRTSS xmm3/m64(E), xmm2(V), xmm1(G) = VEX.NDS.LIG.F3.0F.WIG 51 /r
VSQRTPS xmm2/m128(E), xmm1(G) = VEX.NDS.128.0F.WIG 51 /r
VSQRTPS ymm2/m256(E), ymm1(G) = VEX.NDS.256.0F.WIG 51 /r
VSQRTPD xmm2/m128(E), xmm1(G) = VEX.NDS.128.66.0F.WIG 51 /r
VSQRTPD ymm2/m256(E), ymm1(G) = VEX.NDS.256.66.0F.WIG 51 /r
VRSQRTSS xmm3/m64(E), xmm2(V), xmm1(G) = VEX.NDS.LIG.F3.0F.WIG 52 /r
VRSQRTPS xmm2/m128(E), xmm1(G) = VEX.NDS.128.0F.WIG 52 /r
VRSQRTPS ymm2/m256(E), ymm1(G) = VEX.NDS.256.0F.WIG 52 /r
VZEROALL = VEX.256.0F.WIG 77
VMOVDQU ymm1, ymm2/m256 = VEX.256.F3.0F.WIG 7F
VCVTPS2PD xmm2/m128, ymm1 = VEX.256.0F.WIG 5A /r
VCVTPS2DQ ymm2/m256, ymm1 = VEX.256.66.0F.WIG 5B /r
VCVTTPS2DQ xmm2/m128, xmm1 = VEX.128.F3.0F.WIG 5B /r
VCVTTPS2DQ ymm2/m256, ymm1 = VEX.256.F3.0F.WIG 5B /r
VCVTDQ2PS xmm2/m128, xmm1 = VEX.128.0F.WIG 5B /r
VCVTDQ2PS ymm2/m256, ymm1 = VEX.256.0F.WIG 5B /r
VCVTTPD2DQ xmm2/m128, xmm1 = VEX.128.66.0F.WIG E6 /r
VCVTTPD2DQ ymm2/m256, xmm1 = VEX.256.66.0F.WIG E6 /r
VCVTPD2DQ xmm2/m128, xmm1 = VEX.128.F2.0F.WIG E6 /r
VCVTPD2DQ ymm2/m256, xmm1 = VEX.256.F2.0F.WIG E6 /r

(Jakub Jelinek, jakub@redhat.com).  #273475 comments 115, 116.

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

14 years agoUpdate.
Julian Seward [Mon, 18 Jun 2012 22:10:03 +0000 (22:10 +0000)] 
Update.

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

14 years agoRemove incorrect masking of the imm8 in VSHUFPD.
Julian Seward [Mon, 18 Jun 2012 22:09:33 +0000 (22:09 +0000)] 
Remove incorrect masking of the imm8 in VSHUFPD.

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

14 years agoUpdate.
Julian Seward [Mon, 18 Jun 2012 16:40:05 +0000 (16:40 +0000)] 
Update.

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

14 years agoMore AVX insns:
Julian Seward [Mon, 18 Jun 2012 15:01:30 +0000 (15:01 +0000)] 
More AVX insns:

VMOVUPD ymm1, ymm2/m256 = VEX.256.66.0F.WIG 11 /r
VMOVUPS ymm1, ymm2/m256 = VEX.256.0F.WIG 11 /r
VCOMISD  xmm2/m64, xmm1 = VEX.LIG.66.0F.WIG 2F /r
VPCMPGTD r/m, rV, r ::: r = rV `>s-by-32s` r/m
VPMOVSXBD xmm2/m32, xmm1
VPMOVZXBD xmm2/m32, xmm1
VDPPD xmm3/m128,xmm2,xmm1 = VEX.NDS.128.66.0F3A.WIG 41 /r ib

and common up duplication in implementation of PINSRW/VPINSRW.

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

14 years agoMore AVX insns:
Julian Seward [Mon, 18 Jun 2012 14:05:52 +0000 (14:05 +0000)] 
More AVX insns:

VMOVSD xmm3, xmm2, xmm1 = VEX.LIG.F2.0F.WIG 10 /r
VMOVSD xmm3, xmm2, xmm1 = VEX.LIG.F2.0F.WIG 11 /r
VMOVLPD m64, xmm1, xmm2 = VEX.NDS.128.66.0F.WIG 12 /r
VMOVLPD xmm1, m64 = VEX.128.66.0F.WIG 13 /r
VPINSRW r32/m16, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG C4 /r ib
VSHUFPD imm8, xmm3/m128, xmm2, xmm1, xmm2
VSHUFPD imm8, ymm3/m256, ymm2, ymm1, ymm2
VPERMILPS imm8, xmm2/m128, xmm1 = VEX.128.66.0F3A.WIG 04 /r ib
VBLENDPS imm8, ymm3/m256, ymm2, ymm1
VBLENDPS = VEX.NDS.128.66.0F3A.WIG 0C /r ib
VBLENDPD = VEX.NDS.256.66.0F3A.WIG 0D /r ib
VBLENDPD = VEX.NDS.128.66.0F3A.WIG 0D /r ib
VPBLENDW = VEX.NDS.128.66.0F3A.WIG 0E /r ib
VPINSRB r32/m8, xmm2, xmm1 = VEX.NDS.128.66.0F3A.WIG C4 /r ib

(Jakub Jelinek, jakub@redhat.com).  #273475 comment 110.

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

14 years agoMore AVX insns:
Julian Seward [Mon, 18 Jun 2012 13:56:55 +0000 (13:56 +0000)] 
More AVX insns:

VBROADCASTSS m32, ymm1 = VEX.256.66.0F38.WIG 18 /r
VPALIGNR imm8, xmm3/m128, xmm2, xmm1

(Jakub Jelinek, jakub@redhat.com).  #273475 comment 109.

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

14 years agodrd: Make sure that frame unwind information is generated for DRD intercepts
Bart Van Assche [Sun, 17 Jun 2012 08:46:32 +0000 (08:46 +0000)] 
drd: Make sure that frame unwind information is generated for DRD intercepts
such that pthread_cancel() works properly. See also Ulrich Drepper, Cancellation
and C++ Exceptions, 2010 (http://udrepper.livejournal.com/21541.html).

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

14 years agodrd: Add two regression test output files
Bart Van Assche [Sun, 17 Jun 2012 06:13:58 +0000 (06:13 +0000)] 
drd: Add two regression test output files

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

14 years agoRecognize clang version correctly. Closes #301984.
Bart Van Assche [Sun, 17 Jun 2012 05:53:02 +0000 (05:53 +0000)] 
Recognize clang version correctly. Closes #301984.

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

14 years agoAlign VG_(threads)[]
Bart Van Assche [Sun, 17 Jun 2012 05:51:48 +0000 (05:51 +0000)] 
Align VG_(threads)[]

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

14 years agoAdd strchr.stderr.exp3 to memcheck/tests/Makefile.am
Bart Van Assche [Sun, 17 Jun 2012 05:51:03 +0000 (05:51 +0000)] 
Add strchr.stderr.exp3 to memcheck/tests/Makefile.am

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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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