]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
13 years agoImplement
Julian Seward [Fri, 25 May 2012 13:51:07 +0000 (13:51 +0000)] 
Implement
   VADDPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 58 /r
   VMULPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 59 /r
   VCVTPS2DQ xmm2/m128, xmm1 = VEX.128.66.0F.WIG 5B /r
   VSUBPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 5C /r
   VMINPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 5D /r
   VMAXPS xmm3/m128, xmm2, xmm1 = VEX.NDS.128.0F.WIG 5F /r
   VPUNPCKLWD r/m, rV, r ::: r = interleave-lo-words(rV, r/m)
   VPUNPCKHWD r/m, rV, r ::: r = interleave-hi-words(rV, r/m)
   VPSHUFLW imm8, xmm2/m128, xmm1 = VEX.128.F2.0F.WIG 70 /r ib
   VPSHUFHW imm8, xmm2/m128, xmm1 = VEX.128.F3.0F.WIG 70 /r ib
   VPSRLD imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 72 /2 ib
   VPSLLDQ imm8, xmm2, xmm1 = VEX.NDD.128.66.0F.WIG 73 /7 ib
   VSHUFPS imm8, xmm3/m128, xmm2, xmm1, xmm2
   VPMULLW xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG D5 /r
   VPSUBUSB xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG D8 /r
   VPANDN r/m, rV, r ::: r = rV & ~r/m (is that correct, re the ~ ?)
   VPADDUSB xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG DC /r
   VPADDUSW xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG DD /r
   VPMULHUW xmm3/m128, xmm2, xmm1 = VEX.NDS.128.66.0F.WIG E4 /r

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

13 years agogdbserver: introduce support to show the AVX registers.
Philippe Waroquiers [Thu, 24 May 2012 21:33:17 +0000 (21:33 +0000)] 
gdbserver: introduce support to show the AVX registers.

This implies to change the interface between the
arch independent gdbserver files and the arch dependent files
as AVX implies a choice of xml files at run time.

In valgrind-low-amd64.c, the xml files and the nr of registers
are different depending on AVX support or not.

Other platforms still have a fully static nr of registers.

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

13 years agoUpdate.
Julian Seward [Thu, 24 May 2012 21:07:16 +0000 (21:07 +0000)] 
Update.

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

13 years agoImplement
Julian Seward [Thu, 24 May 2012 16:29:18 +0000 (16:29 +0000)] 
Implement
   /* VEX.NDS.128.66.0F.WIG DB /r = VPAND xmm3/m128, xmm2, xmm1 */
   /* VPCMPEQB = VEX.NDS.128.66.0F.WIG 74 /r */
   /* VCVTTSS2SI xmm1/m64, r64 = VEX.LIG.F3.0F.W1 2C /r */
   /* VMOVHPD xmm1, m64 = VEX.128.66.0F.WIG 17 /r */

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

13 years agoFix two more incorrect disAMode calls, recently introduced in AVX
Julian Seward [Thu, 24 May 2012 06:31:21 +0000 (06:31 +0000)] 
Fix two more incorrect disAMode calls, recently introduced in AVX
support code.

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

13 years agoFix incorrect uses of disAMode in some SSE4 instructions that have an
Julian Seward [Thu, 24 May 2012 06:17:14 +0000 (06:17 +0000)] 
Fix incorrect uses of disAMode in some SSE4 instructions that have an
immediate byte as a subopcode.  Fixes #294260.  (Patrick J. LoPresti,
lopresti@gmail.com)

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

13 years agoImplement VPACKUWSB = VEX.NDS.128.66.0F.WIG 67 /r
Julian Seward [Thu, 24 May 2012 00:09:27 +0000 (00:09 +0000)] 
Implement VPACKUWSB = VEX.NDS.128.66.0F.WIG 67 /r

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

13 years agoImplement
Julian Seward [Wed, 23 May 2012 23:54:30 +0000 (23:54 +0000)] 
Implement
   VMOVD xmm1, r32 = VEX.128.66.0F.W0 7E /r (reg case only)
   VCVTSS2SD xmm3/m32, xmm2, xmm1 = VEX.NDS.LIG.F3.0F.WIG 5A /r
   VCVTSD2SS xmm3/m64, xmm2, xmm1 = VEX.NDS.LIG.F2.0F.WIG 5A /r

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

13 years agoPrepare for AVX support : restructure gdbsrv/target/valgrind-low/arch low
Philippe Waroquiers [Wed, 23 May 2012 21:50:36 +0000 (21:50 +0000)] 
Prepare for AVX support : restructure gdbsrv/target/valgrind-low/arch low

AVX support implies to have target xml files which are selected
according to the machine hwcaps.
This change improves the structure of the gdbserver software layering
to prepare for this.

Basically, the protocol files (e.g. server.c) are now calling directly
the valgrind target operations which are now defined in target.h/target.c
(before, there was a level of indirection inheritated from the GDB
structure which was useless for valgrind gdbserver).
+ clarified some comments

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

13 years agoadd some intial kvm ioctls (low hanging fruits). This gets rid of some valgrind
Christian Borntraeger [Wed, 23 May 2012 15:59:40 +0000 (15:59 +0000)] 
add some intial kvm ioctls (low hanging fruits). This gets rid of some valgrind
warnings regarding KVM ioctl without a length/direction specifier.

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

13 years agoImplement
Julian Seward [Wed, 23 May 2012 12:42:39 +0000 (12:42 +0000)] 
Implement
   VEX.128.66.0F3A.WIG 63 /r ib = VPCMPISTRI imm8, xmm2/m128, xmm1
   VEX.128.66.0F3A.WIG 62 /r ib = VPCMPISTRM imm8, xmm2/m128, xmm1
   VEX.128.66.0F3A.WIG 61 /r ib = VPCMPESTRI imm8, xmm2/m128, xmm1
   VEX.128.66.0F3A.WIG 60 /r ib = VPCMPESTRM imm8, xmm2/m128, xmm1

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

13 years agoUpdate.
Julian Seward [Wed, 23 May 2012 11:40:03 +0000 (11:40 +0000)] 
Update.

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

13 years agoImplement
Julian Seward [Wed, 23 May 2012 11:33:56 +0000 (11:33 +0000)] 
Implement
   VMOVUPS xmm1, xmm2/m128 = VEX.128.0F.WIG 11 /r
   VMOVQ r64/m64, xmm1 = VEX.128.66.0F.W1 6E
   MOVNTDQ xmm1, m128 = VEX.128.66.0F.WIG E7 /r

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

13 years agoImplement
Julian Seward [Wed, 23 May 2012 06:16:26 +0000 (06:16 +0000)] 
Implement
   VMOVLHPS xmm3, xmm2, xmm1 = VEX.NDS.128.0F.WIG 16 /r

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

13 years agoImplement
Julian Seward [Wed, 23 May 2012 05:56:53 +0000 (05:56 +0000)] 
Implement
   VPABSD xmm2/m128, xmm1 = VEX.128.66.0F38.WIG 1E /r

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

13 years agoImplement
Julian Seward [Tue, 22 May 2012 23:34:06 +0000 (23:34 +0000)] 
Implement
   VMOVHLPS xmm3, xmm2, xmm1 = VEX.NDS.128.0F.WIG 12 /r

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

13 years agoImplement
Julian Seward [Tue, 22 May 2012 23:12:13 +0000 (23:12 +0000)] 
Implement
   VMOVQ xmm1, r64 = VEX.128.66.0F.W1 7E /r (reg case only)
If this is documented in the Intel manuals, I can't find it.
GNU binutils and GDB seem to have heard of it, though.

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

13 years agoUpdate.
Julian Seward [Tue, 22 May 2012 10:50:19 +0000 (10:50 +0000)] 
Update.

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

13 years agoImplement VCVTTSS2SI xmm1/m32, r32 = VEX.LIG.F3.0F.W0 2C /r
Julian Seward [Tue, 22 May 2012 10:48:13 +0000 (10:48 +0000)] 
Implement VCVTTSS2SI xmm1/m32, r32 = VEX.LIG.F3.0F.W0 2C /r

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

13 years agoImplement AVX insns
Julian Seward [Tue, 22 May 2012 09:14:15 +0000 (09:14 +0000)] 
Implement AVX insns
   VPUNPCKHBW = VEX.NDS.128.0F.WIG 68 /r
   VPUNPCKLBW = VEX.NDS.128.0F.WIG 60 /r
Catchy names, huh?!

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

13 years agoTweak initialisation of padding bytes such that future adjustments
Florian Krohm [Tue, 22 May 2012 01:51:26 +0000 (01:51 +0000)] 
Tweak initialisation of padding bytes such that future adjustments
only require changing one spot (libvex_guest_s390x.h).

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

13 years agoAdd comments from Julian as to why mc_main.c and mc_replace_strmem.c
Florian Krohm [Tue, 22 May 2012 01:41:48 +0000 (01:41 +0000)] 
Add comments from Julian as to why mc_main.c and mc_replace_strmem.c
deserve special compilation treatment.

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

13 years agoFix fallout from recent AVX commit (guest_XMMn no longer exist;
Julian Seward [Mon, 21 May 2012 22:53:06 +0000 (22:53 +0000)] 
Fix fallout from recent AVX commit (guest_XMMn no longer exist;
use guest_YMMn instead)

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

13 years agoFix VALGRIND_MINOR/VALGRIND_MAJOR symbols. This got forgotten about
Julian Seward [Mon, 21 May 2012 21:57:05 +0000 (21:57 +0000)] 
Fix VALGRIND_MINOR/VALGRIND_MAJOR symbols.  This got forgotten about
in 3.7.0 (oops).

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

13 years agoEnable FCOMS/FCOMPS on amd64. Fixes #300414.
Julian Seward [Mon, 21 May 2012 21:51:36 +0000 (21:51 +0000)] 
Enable FCOMS/FCOMPS on amd64.  Fixes #300414.
(Eliot Moss, moss@cs.umass.edu)

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

13 years agoAdd -fomit-frame-pointer for s390. The GCC maintainer was telling me that
Florian Krohm [Mon, 21 May 2012 16:18:23 +0000 (16:18 +0000)] 
Add -fomit-frame-pointer for s390. The GCC maintainer was telling me that
this has been the preferred way to compile for quite a while. So let's follow
suit. The perf bucket did not reveal any measurable difference.

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

13 years agoFix feature recognition on AMD Bulldozer following the recent AVX
Julian Seward [Mon, 21 May 2012 16:16:13 +0000 (16:16 +0000)] 
Fix feature recognition on AMD Bulldozer following the recent AVX
commits.  Fixes #300389.

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

13 years agoEnsure s390x guest state size is 32-byte aligned, as per increase in
Julian Seward [Mon, 21 May 2012 15:45:34 +0000 (15:45 +0000)] 
Ensure s390x guest state size is 32-byte aligned, as per increase in
alignment requirements resulting from r12569/r2330.
(Christian Borntraeger <borntraeger@de.ibm.com>)

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

13 years agoHandle 32-byte loads/stores, as created by recently added AVX support.
Julian Seward [Mon, 21 May 2012 13:44:54 +0000 (13:44 +0000)] 
Handle 32-byte loads/stores, as created by recently added AVX support.

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

13 years agoEnsure arm guest state size is 32-byte aligned, as per increase in
Julian Seward [Mon, 21 May 2012 11:21:50 +0000 (11:21 +0000)] 
Ensure arm guest state size is 32-byte aligned, as per increase in
alignment requirements resulting from r12569/r2330.

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

13 years agoHandle increase in ppc64 guest state size resulting from r2331.
Julian Seward [Mon, 21 May 2012 11:01:35 +0000 (11:01 +0000)] 
Handle increase in ppc64 guest state size resulting from r2331.

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

13 years agoEnsure ppc64 guest state size is 32-byte aligned, as per increase in
Julian Seward [Mon, 21 May 2012 11:00:41 +0000 (11:00 +0000)] 
Ensure ppc64 guest state size is 32-byte aligned, as per increase in
alignment requirements resulting from r12569/r2330.

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

13 years agoAdd initial support for Intel AVX instructions (VEX side).
Julian Seward [Mon, 21 May 2012 10:18:49 +0000 (10:18 +0000)] 
Add initial support for Intel AVX instructions (VEX side).
Tracker bug is #273475.

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

13 years agoAdd initial support for Intel AVX instructions (Valgrind side).
Julian Seward [Mon, 21 May 2012 10:18:10 +0000 (10:18 +0000)] 
Add initial support for Intel AVX instructions (Valgrind side).
Tracker bug is #273475.

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

13 years agodefine AM_COND_IF if not yet defined (needed to build with automake 1.10)
Philippe Waroquiers [Fri, 18 May 2012 16:48:20 +0000 (16:48 +0000)] 
define AM_COND_IF if not yet defined (needed to build with automake 1.10)

Patch from Dave Goodell

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

13 years agoFix 274078 improved configure logic for mpicc
Philippe Waroquiers [Thu, 17 May 2012 15:32:54 +0000 (15:32 +0000)] 
Fix 274078  improved configure logic for mpicc

Patch from Dave Goodell.
See bug 274078 for detailed patch description.

Tested on deb6/amd64 with a static MPI (now it will be ignored
rather than make the Valgrind build failing), with a shared MPI,
and with no MPI.

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

13 years agoname_of_sched_event was missing some values and returning "??UNKNOWN??" instead.
Philippe Waroquiers [Thu, 17 May 2012 14:31:13 +0000 (14:31 +0000)] 
name_of_sched_event was missing some values and returning "??UNKNOWN??" instead.
* re-ordered the values to match the declaration order in
  libvex_trc_values.h and pub_core_dispatch_asm.h
* added missing values

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

13 years agoNEWS entry for revision 12564 (bypass gcc 4.4/gcc 4.5 bug)
Philippe Waroquiers [Tue, 15 May 2012 21:16:28 +0000 (21:16 +0000)] 
NEWS entry for revision 12564 (bypass gcc 4.4/gcc 4.5 bug)

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

13 years agoBypass gcc 4.4/4.5 compilation bug by moving -fomit-frame-pointer to Makefile.all.am
Philippe Waroquiers [Tue, 15 May 2012 21:04:31 +0000 (21:04 +0000)] 
Bypass gcc 4.4/4.5 compilation bug by moving -fomit-frame-pointer to Makefile.all.am
gcc 4.4 and 4.5 has a bug which causes miscompilation of mc_main.c:
 args are not correctly given to VG_(am_munmap_valgrind).
This causes the secondary map entries to not be unmapped
(which can cause unlimited memory growth)
and/or causes the assert on VG_(am_munmap_valgrind) result to fail.

Removing the pragma optimize from mc_main.c and inserting it instead
in Makefile.all.am for x86 solves the gcc bug.

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

13 years agoAdd assertion that the munmap of the secmap succeeds.
Philippe Waroquiers [Sun, 13 May 2012 22:58:09 +0000 (22:58 +0000)] 
Add assertion that the munmap of the secmap succeeds.
It is suspected that there is a bug in the call to VG_(am_munmap_valgrind).

At first sight, it looks like a bug in gcc version 4.4.5 (Debian 4.4.5-8)
which seems to pass wrong arguments from mc_main.c to aspace mgr function.
Some tests are failing on gcc20 with this assert a.o.
  ./vg-in-place ./perf/bz2 x
gives an assert.
The bug does not happen if Valgrind is compiled with gcc 4.7.0.

On gcc20, the new tests failing with this assert are:
memcheck/tests/linux/lsframe1            (stderr)
memcheck/tests/linux/lsframe2            (stderr)
memcheck/tests/linux/stack_switch        (stderr)
memcheck/tests/origin5-bz2               (stdout)
memcheck/tests/vcpu_bz2                  (stdout)
memcheck/tests/vcpu_bz2                  (stderr)

The assert is committed so as to see other platforms
where this is failing.

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

13 years agoMove registration of mc_pre_reg_read to mc_post_clo_init.
Florian Krohm [Sat, 12 May 2012 18:06:35 +0000 (18:06 +0000)] 
Move registration of mc_pre_reg_read to mc_post_clo_init.
This fixes the regtest failure for memcheck/tests/clireq_nofill on s390x.

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

13 years agoFix disassembly for asi and agsi
Florian Krohm [Sat, 12 May 2012 16:14:08 +0000 (16:14 +0000)] 
Fix disassembly for asi and agsi

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

13 years agoEliminate helper s390_calculate_icc. Rewrite and factor the code to use
Florian Krohm [Sat, 12 May 2012 15:26:44 +0000 (15:26 +0000)] 
Eliminate helper s390_calculate_icc. Rewrite and factor the code to use
s390_calculate_cond instead. The benefit is that the latter has comprehensive
spec_helpers whereas the former had not.

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

13 years agoBack out VEX r2326. It was not working correctly. The guard condition
Florian Krohm [Sat, 12 May 2012 03:44:49 +0000 (03:44 +0000)] 
Back out VEX r2326. It was not working correctly. The guard condition
has to be evaluated after argument evaluation. Add clarifying comments
in libvex_ir.h

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

13 years agoAdd a few testcases that exercise the s390_calculate_icc helper.
Florian Krohm [Sat, 12 May 2012 00:05:14 +0000 (00:05 +0000)] 
Add a few testcases that exercise the s390_calculate_icc helper.

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

13 years agofix 299756 (for symmetry, --free-fill must be ignored for MEMPOOL_FREE and FREELIKE...
Philippe Waroquiers [Fri, 11 May 2012 22:10:39 +0000 (22:10 +0000)] 
fix 299756 (for symmetry, --free-fill must be ignored for MEMPOOL_FREE and FREELIKE client requests).

Test program from goodell@mcs.anl.gov

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

13 years agofix 219156 support static malloc or alternate malloc lib (e.g. tcmalloc) with new...
Philippe Waroquiers [Fri, 11 May 2012 19:33:46 +0000 (19:33 +0000)] 
fix 219156 support static malloc or alternate malloc lib (e.g. tcmalloc) with new option --soname-synonyms

* pub_tool_redir.h : define the prefix to be used for "soname synonym"
  place holder
* vg_replace_malloc.c : define synonym place holder for malloc related
  functions
* m_redir.c : when detecting a soname synonym place holder redir spec, search
  in clo_soname_synonyms if there is a synonym pattern.
  If yes, replace the soname pattern. If not, ignore the redir spec.
* various files: implement or document the new clo --soname-synonyms
* new test memcheck/tests/static_malloc.vgtest

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

13 years agoSupport DWARF version 4 DW_AT_high_pc constant form. #299053.
Julian Seward [Wed, 9 May 2012 23:09:05 +0000 (23:09 +0000)] 
Support DWARF version 4 DW_AT_high_pc constant form.  #299053.
(Mark Wielaard, mjw@redhat.com)

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

13 years agoImprove insn selection for helper calls. Attempt to evaluate arguments
Florian Krohm [Wed, 9 May 2012 13:31:09 +0000 (13:31 +0000)] 
Improve insn selection for helper calls. Attempt to evaluate arguments
into the real register that is mandated by the ABI instead of evaluating
it in a virtual register and then move the result.
Observed savings in insns between 0.5% and 1.4%.
Probably an overrated optimization given current helper functions which
rarely take more than one argument.

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

13 years agoUse make_gpr throughout. Remove unused parameter.
Florian Krohm [Tue, 8 May 2012 20:16:17 +0000 (20:16 +0000)] 
Use make_gpr throughout. Remove unused parameter.

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

13 years agoRemove an out-of-date comment.
Florian Krohm [Mon, 7 May 2012 03:28:18 +0000 (03:28 +0000)] 
Remove an out-of-date comment.

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

13 years agofix typo in README_DEVELOPERS
Philippe Waroquiers [Sun, 6 May 2012 21:29:59 +0000 (21:29 +0000)] 
fix typo in README_DEVELOPERS

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

13 years agoAvoid regtest failures on x86_64 and ppc64 when toolchains for the
Florian Krohm [Sun, 6 May 2012 03:51:00 +0000 (03:51 +0000)] 
Avoid regtest failures on x86_64 and ppc64 when toolchains for the
seconday platform (x86 and ppc32, respectively) is not available.
Add -DVGA_SEC_xxxxx and -DVGP_SEC_... to the GCC command line
indicating that a seconday platform is supported. Make arch_test.c
recognise those flags.
Fixes bugzilla #296983.

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

13 years agoRequire automake-1.10 for proper handling of include file dependencies
Florian Krohm [Sun, 6 May 2012 03:37:25 +0000 (03:37 +0000)] 
Require automake-1.10 for proper handling of include file dependencies
in .S files. Also included here is some cleanup, including a reversion
of r10378. Fixes bugzilla #197914.

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

13 years agoAdd the counter pseudo register to the list of guest registers to
Florian Krohm [Sun, 6 May 2012 03:34:55 +0000 (03:34 +0000)] 
Add the counter pseudo register to the list of guest registers to
be tracked during insn selection. Saves 0.2% or so of insns depending on
how often insns with implicit loops like  MVC are being used.

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

13 years agoAvoid duplicate primary names when merging identical symbol table entries.
Philippe Waroquiers [Sat, 5 May 2012 22:18:24 +0000 (22:18 +0000)] 
Avoid duplicate primary names when merging identical symbol table entries.
--trace-redir=yes shows that there are duplicated redir entries e.g.
--32537--    TOPSPECS of soname NONE filename /home/philippe/valgrind/m_redir_trace/memcheck/vgpreload_memcheck-amd64-linux.so
--32537--      libc.so*                  strcasecmp_l                   R-> (2014.0) 0x04c28bf0
--32537--      libc.so*                  strcasecmp_l                   R-> (2014.0) 0x04c28bf0
--32537--      libc.so*                  __GI_strcasecmp_l              R-> (2014.0) 0x04c28b70
--32537--      libc.so*                  __GI_strcasecmp_l              R-> (2014.0) 0x04c28b70

These are caused by the merging of identical debug entries always
adding the two primary names, even if the entries are exactly the same.

This patch avoids duplicated names in debug info if the entry to merge
has only one name identical to the entry name to which we are merging.

This avoids the useless duplicated redir entries, and slightly decreases
the "dinfo" memory usage.

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

13 years agoFix svn:ignore on ppc test buckets
Florian Krohm [Sat, 5 May 2012 19:22:41 +0000 (19:22 +0000)] 
Fix svn:ignore on ppc test buckets

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

13 years agoSpecial-case the TR insn for EX.
Florian Krohm [Sat, 5 May 2012 02:55:24 +0000 (02:55 +0000)] 
Special-case the TR insn for EX.
With this change all insns of the SS format with a length field
are special-cased for EX.

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

13 years agoMore refactoring to avoid code duplication (irgen_CLC/CLC_EX and
Florian Krohm [Sat, 5 May 2012 02:20:30 +0000 (02:20 +0000)] 
More refactoring to avoid code duplication (irgen_CLC/CLC_EX and
irgen_MVC/MVC_EX)

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

13 years agoAdd NC and OC to the list of insns that get special treatment under EX.
Florian Krohm [Sat, 5 May 2012 00:01:16 +0000 (00:01 +0000)] 
Add NC and OC to the list of insns that get special treatment under EX.
Refactored code such that s390_irgen_xonc can be reused thereby avoiding
code duplication.

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

13 years agoImprove m_redir.c debug trace by adding filename.
Philippe Waroquiers [Thu, 3 May 2012 21:09:51 +0000 (21:09 +0000)] 
Improve m_redir.c debug trace by adding filename.
Many objects (shared or non shared) have no soname.
In such case, showing the filename clarifies where the
redir spec is coming from.

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

13 years agoUpdated for s390.
Florian Krohm [Thu, 3 May 2012 01:39:45 +0000 (01:39 +0000)] 
Updated for s390.

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

13 years agoAdd ETF3 facility (valgrind bits). Part of fixing Bugzilla #289839.
Florian Krohm [Thu, 3 May 2012 01:31:24 +0000 (01:31 +0000)] 
Add ETF3 facility (valgrind bits). Part of fixing Bugzilla #289839.
Patch by Divya Vyas (divyvyas@linux.vnet.ibm.com)

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

13 years agoAdd ETF3 facility (VEX bits). Part of fixing Bugzilla #289839.
Florian Krohm [Thu, 3 May 2012 01:30:48 +0000 (01:30 +0000)] 
Add ETF3 facility (VEX bits). Part of fixing Bugzilla #289839.
Patch by Divya Vyas (divyvyas@linux.vnet.ibm.com)

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

13 years agoRemove unused variable in massif/tests/pages_as_heap.c (revision 12548)
Philippe Waroquiers [Tue, 1 May 2012 20:21:30 +0000 (20:21 +0000)] 
Remove unused variable in massif/tests/pages_as_heap.c (revision 12548)

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

13 years agofix 298943 massif asserts with --pages-as-heap=yes when brk is changing by value...
Philippe Waroquiers [Tue, 1 May 2012 20:02:30 +0000 (20:02 +0000)] 
fix 298943  massif asserts with --pages-as-heap=yes when brk is changing by value different of page size

* add a massif test to (somewhat) validate --pages-as-heap=yes
  with calls to brk not being a multiple of a page size

* fix the assert:
   only record new pages or unrecord old pages if at least one new
   full page (or one full old page) is added/removed.

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

13 years agoAdd DFP test cases that accidentally missed in r12546.
Julian Seward [Tue, 1 May 2012 19:51:07 +0000 (19:51 +0000)] 
Add DFP test cases that accidentally missed in r12546.

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

13 years agoDon't use constants of the form 0b...; apparently older compilers
Julian Seward [Mon, 30 Apr 2012 08:10:11 +0000 (08:10 +0000)] 
Don't use constants of the form 0b...; apparently older compilers
don't know about them.  Fixes compile breaking resulting from r2317.

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

13 years agoTest cases for POWER Power Decimal Floating Point (DFP) test class,
Julian Seward [Sun, 29 Apr 2012 20:20:16 +0000 (20:20 +0000)] 
Test cases for POWER Power Decimal Floating Point (DFP) test class,
test group and test exponent instructions dtstdc, dtstdcq, dtstdg,
dtstdgq, dtstex and dtstexq.  Bug #298862.  (Carl Love,
carll@us.ibm.com and Maynard Johnson, maynardj@us.ibm.com)

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

13 years agoAdd support for POWER Power Decimal Floating Point (DFP) test class,
Julian Seward [Sun, 29 Apr 2012 20:19:17 +0000 (20:19 +0000)] 
Add support for POWER Power Decimal Floating Point (DFP) test class,
test group and test exponent instructions dtstdc, dtstdcq, dtstdg,
dtstdgq, dtstex and dtstexq.  Bug #298862.  (Carl Love,
carll@us.ibm.com)

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

14 years agoCorrectly parse DW_FORM_ref_addr -- its format is different in Dwarf2
Julian Seward [Sun, 29 Apr 2012 11:35:37 +0000 (11:35 +0000)] 
Correctly parse DW_FORM_ref_addr -- its format is different in Dwarf2
vs Dwarf3 and later.  Fixes #298864.  (Tom Tromey, tromey@redhat.com)

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

14 years agoadd optional arg [aspacemgr] to v.info memory to show aspacemgr segments.
Philippe Waroquiers [Fri, 27 Apr 2012 22:59:43 +0000 (22:59 +0000)] 
add optional arg [aspacemgr] to v.info memory to show aspacemgr segments.

When investigating Valgrind out of memory situation,
it is useful to be able to output the list of segments of the
aspacemgr at any moment.
The GDB monitor command "v.info memory" has now an optional
argument allowing to output this list of segments

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

14 years agoAdd feature detection for amd64.avx, and (potentially) FMA.
Julian Seward [Thu, 26 Apr 2012 14:17:50 +0000 (14:17 +0000)] 
Add feature detection for amd64.avx, and (potentially) FMA.

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

14 years agoAdd a feature check flag for AVX.
Julian Seward [Thu, 26 Apr 2012 14:16:52 +0000 (14:16 +0000)] 
Add a feature check flag for AVX.

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

14 years agoTry to fold out some of the lousy code generated by the amd64 front
Julian Seward [Wed, 25 Apr 2012 16:47:53 +0000 (16:47 +0000)] 
Try to fold out some of the lousy code generated by the amd64 front
end for 32 bit shifts.

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

14 years agoAdd spec rules for Z and NZ after LOGICW.
Julian Seward [Wed, 25 Apr 2012 14:33:03 +0000 (14:33 +0000)] 
Add spec rules for Z and NZ after LOGICW.

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

14 years agoFor --profile-flags=, weight the counts by the number of guest insns
Julian Seward [Tue, 24 Apr 2012 11:50:49 +0000 (11:50 +0000)] 
For --profile-flags=, weight the counts by the number of guest insns
in each IRSB, rather than considering each IRSB to have a weight of 1.
This probably gives more representative profiles, especially post
t-chain merge, which made inter-SB transitions more or less free
compared to what they were before.

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

14 years ago(stats only) Let the callers of LibVEX_Translate know how many guest
Julian Seward [Tue, 24 Apr 2012 11:49:03 +0000 (11:49 +0000)] 
(stats only) Let the callers of LibVEX_Translate know how many guest
instructions got incorporated into the IRSB.

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

14 years agoPOWER Processor decimal floating point instruction support, part 3 --
Julian Seward [Mon, 23 Apr 2012 11:22:05 +0000 (11:22 +0000)] 
POWER Processor decimal floating point instruction support, part 3 --
test cases.  (Carl Love, carll@us.ibm.com).  Bug 298080.

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

14 years agoPOWER Processor decimal floating point instruction support, part 3
Julian Seward [Mon, 23 Apr 2012 11:21:12 +0000 (11:21 +0000)] 
POWER Processor decimal floating point instruction support, part 3
(Carl Love, carll@us.ibm.com).  Bug 298080.

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

14 years agoUpdate.
Julian Seward [Mon, 23 Apr 2012 09:53:36 +0000 (09:53 +0000)] 
Update.

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

14 years agoDisable debug printing w.r.t. sector unlinking.
Julian Seward [Mon, 23 Apr 2012 09:53:20 +0000 (09:53 +0000)] 
Disable debug printing w.r.t. sector unlinking.

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

14 years agoFor each backend, unify the sets of IRJumpKinds handled for Ist_Exit
Julian Seward [Mon, 23 Apr 2012 09:48:14 +0000 (09:48 +0000)] 
For each backend, unify the sets of IRJumpKinds handled for Ist_Exit
and iselNext, so as to avoid potential failures caused by branch sense
switching at the IR level.

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

14 years agoFix makefile to allow compilation with gcc -g3.
Florian Krohm [Sun, 22 Apr 2012 19:27:44 +0000 (19:27 +0000)] 
Fix makefile to allow compilation with gcc -g3.
Fixes bugzilla #297993 (together with VEX r2310).
Patch by  Daniel Richard G. (skunk@iskunk.org).

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

14 years agoFix makefile to allow compilation with gcc -g3.
Florian Krohm [Sun, 22 Apr 2012 19:25:39 +0000 (19:25 +0000)] 
Fix makefile to allow compilation with gcc -g3.
Part of fixing bugzilla #297993.
Patch by  Daniel Richard G. (skunk@iskunk.org).

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

14 years agotchain optimization for s390 (continued)
Florian Krohm [Sun, 22 Apr 2012 17:46:31 +0000 (17:46 +0000)] 
tchain optimization for s390 (continued)
Take advantage of hardware capabilities when loading a 64-bit
immediate.

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

14 years agotchain optimisation for s390 (valgrind bits)
Florian Krohm [Sun, 22 Apr 2012 17:39:37 +0000 (17:39 +0000)] 
tchain optimisation for s390 (valgrind bits)
Companion of VEX r2308
Move address arithmetic to recover place to patch into VEX.

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

14 years agotchain optimisation for s390 (VEX bits)
Florian Krohm [Sun, 22 Apr 2012 17:38:46 +0000 (17:38 +0000)] 
tchain optimisation for s390 (VEX bits)
Loading a 64-bit immediate into a register requires 4 insns on a
z900 machine, the oldest model supported. Depending on hardware
capabilities, newer machines can do the same using 2 insns.
Naturally, we want to take advantage of that.
However, currently, in disp_cp_chain_me_to_slowEP/fastEP we assume that
the length of loading a 64-bit immediate is a compile time constant:
S390_TCHAIN_LOAD64_LEN
For what we want to do this constant needs to be a runtime constant.

So in this patch we move this address arithmetic out of the dispatch
code. The general idea being that the value in %r1 does not need to
be adjusted to recover the place to patch. Upon reaching
disp_cp_chain_me_to_slowEP/fastEP %r1 contains the correct address.

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

14 years agoFollowup to r12527. Use 32-bit arithmetic to increment xindir
Florian Krohm [Sun, 22 Apr 2012 15:37:15 +0000 (15:37 +0000)] 
Followup to r12527. Use 32-bit arithmetic to increment xindir
performance counters. Remove #ifdef'ery.

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

14 years agoAnnounce fix.
Florian Krohm [Sun, 22 Apr 2012 03:53:40 +0000 (03:53 +0000)] 
Announce fix.

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

14 years agoBe lenient if the machine model could not be determined. Assume it's
Florian Krohm [Sun, 22 Apr 2012 03:50:20 +0000 (03:50 +0000)] 
Be lenient if the machine model could not be determined. Assume it's
a new machine as opposed to a too old machine.
Patch by Christian Borntraeger (borntraeger@de.ibm.com) with additional
commentary. Fixes 298394.

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

14 years agoRename to VEX_S390X_MODEL_UNKNOWN.
Florian Krohm [Sun, 22 Apr 2012 03:48:52 +0000 (03:48 +0000)] 
Rename to VEX_S390X_MODEL_UNKNOWN.

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

14 years agoUpdate s390 status
Florian Krohm [Sun, 22 Apr 2012 02:58:49 +0000 (02:58 +0000)] 
Update s390 status

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

14 years ago(post-tchain-merge cleanup) Stop s390x asserting on illegal insns.
Florian Krohm [Sun, 22 Apr 2012 02:51:27 +0000 (02:51 +0000)] 
(post-tchain-merge cleanup) Stop s390x asserting on illegal insns.
none/tests/s390x/op_exception will now pass.

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

14 years agoConsolidate and update information about dependencies of
Florian Krohm [Sun, 22 Apr 2012 02:48:20 +0000 (02:48 +0000)] 
Consolidate and update information about dependencies of
VG_(machine_get_hwcaps) for all architectures in pub_core_machine.h
and avoid double maintenance.

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

14 years agoUpdate.
Julian Seward [Sat, 21 Apr 2012 23:53:07 +0000 (23:53 +0000)] 
Update.

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

14 years agoUse 32-bit XIndir counter incs, instead of 64-bit, as per r12527.
Julian Seward [Sat, 21 Apr 2012 23:37:16 +0000 (23:37 +0000)] 
Use 32-bit XIndir counter incs, instead of 64-bit, as per r12527.

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

14 years agoUse 32-bit XIndir counter incs, instead of 64-bit, as per r12527.
Julian Seward [Sat, 21 Apr 2012 23:28:34 +0000 (23:28 +0000)] 
Use 32-bit XIndir counter incs, instead of 64-bit, as per r12527.

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

14 years agoUse 32-bit XIndir counter incs, instead of 64-bit, as per r12527.
Julian Seward [Sat, 21 Apr 2012 23:12:07 +0000 (23:12 +0000)] 
Use 32-bit XIndir counter incs, instead of 64-bit, as per r12527.

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

14 years agoLast optimisation for the day: change VG_(stats__n_xindirs) in such a
Julian Seward [Sat, 21 Apr 2012 23:05:57 +0000 (23:05 +0000)] 
Last optimisation for the day: change VG_(stats__n_xindirs) in such a
way that the fast-path through VG_(disp_cp_xindir) only has to
increment a 32 bit counter, saving memory bandwidth on 32 bit
platforms compared to a 64-bit inc.  The overall numbers of XIndirs
can still be 64 bit though.

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