]>
git.ipfire.org Git - thirdparty/valgrind.git/log
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
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
Julian Seward [Wed, 20 Jun 2012 11:46:42 +0000 (11:46 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12657
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
Julian Seward [Wed, 20 Jun 2012 10:21:22 +0000 (10:21 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12656
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
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
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
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
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
Julian Seward [Mon, 18 Jun 2012 23:17:46 +0000 (23:17 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12654
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
Julian Seward [Mon, 18 Jun 2012 22:10:03 +0000 (22:10 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12653
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
Julian Seward [Mon, 18 Jun 2012 16:40:05 +0000 (16:40 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12652
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Julian Seward [Fri, 15 Jun 2012 15:48:24 +0000 (15:48 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12640
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
Julian Seward [Thu, 14 Jun 2012 23:32:44 +0000 (23:32 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12639
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
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
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
Julian Seward [Thu, 14 Jun 2012 08:52:11 +0000 (08:52 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12636
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
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
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
Julian Seward [Wed, 13 Jun 2012 11:11:10 +0000 (11:11 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12633
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
Julian Seward [Tue, 12 Jun 2012 15:00:00 +0000 (15:00 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12632
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
Julian Seward [Tue, 12 Jun 2012 08:46:09 +0000 (08:46 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12631
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Julian Seward [Tue, 5 Jun 2012 00:32:51 +0000 (00:32 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12612
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
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
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
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
Julian Seward [Sun, 3 Jun 2012 23:14:23 +0000 (23:14 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12608
Julian Seward [Sun, 3 Jun 2012 23:13:08 +0000 (23:13 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12607
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
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
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
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
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
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
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
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
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
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
Julian Seward [Sat, 2 Jun 2012 11:55:52 +0000 (11:55 +0000)]
Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12601
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
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
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
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
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
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
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
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
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
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
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