Commit Graph

78 Commits

Author SHA1 Message Date
Mark Wielaard
2f1ec093bc Allow building vbit_test when srdir != builddir.
Link against libvex-<arch>-<os>.a in top_builddir.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15940
2016-08-26 13:10:14 +00:00
Carl Love
d2450cd776 Power PC test suite for ISA 3.0, part 5 of 5
The test suite support for the Power PC ISA 3.0 instructions added in
VEX commit 3244 is added in this commit.

bugzilla 364948

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15938
2016-08-15 21:54:04 +00:00
Carl Love
b52e8b1c78 Power PC Fix V bit error in 128-bit BCD add and subtract instructions
The original code was using the bcdadd / bcdsub instruction on the operand
shadow bits to calculate the shadow bits for the result.  This introduced
non-zero bits shadow bits in the result.   The shadow bits for these
instructions should be set to all valid or all invalid.  If one of the
argument shadow bits was one, then all of the shadow bits of the result should
be one.  Otherwise the result shadow bits should be zero.

This patch fixes the above bug in memcheck/mc_translate.c

Fixing the above bug broke the v-bit test.  The issue is the v-bit tester 
assumes the shadow bits for the operands of a given Iop can be set to one
for testing purposes.  The implementation of the bcdadd and bcdsub was passing
a constant value for the variable ps.  The ps value is an argument to the
instruction that specifies how to set the sign code of the result.  The
implementation of the instructions was changed to issue the instruction with
ps=0.  Then the result of the instruction is updated in the VEX code if ps=1.
This changed also results in cleaning up the vbit test code.  

This patch also fixes the issues with the v-bit test program.

Valgrind commit 3218

Bugzilla 360035


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15871
2016-04-26 19:53:56 +00:00
Petar Jovanovic
6b95752621 mips: add missing "memory" to the clobber list
Add "memory" to the clobber arguments of VALGRIND_DO_CLIENT_REQUEST_EXPR.

This fixes memcheck/tests/vbit-test/vbit-test.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15740
2015-11-27 14:51:33 +00:00
Carl Love
0201caa575 This is a fix to Bug 354797 which added the vbit test support for the
Power 8 instructions.

The patch for bug 354797 moved the declaration for rc outside of the
architecture #ifdef.  This results in an message about rc being unused
on architectures other then s390 and powerpc.  This commit eliminates
the issue by:

powerpc: move rc declaration into #ifdef for powerpc.
      Remove tab, put in missing break.

s390: remove rc declaration from inside case statement.  Put rc declaration
      before the switch statement but within the #ifdef for s390 so it will
      be declared for use in both case clauses.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15738
2015-11-25 17:48:25 +00:00
Carl Love
79c80505d3 Add ISA 2.07 vbit test support
The ISA 2.07 support adds new Iops as well as support for some existing
Iops.  None of these Iops have been enabled in the vbit tester.  This commit
adds the needed support to the files in memcheck/tests/vbit-test.   
These changes add support for additional immediate operands and additional
undefined bit checking functions.

There are additional changes to files VEX/priv/ir_inject.c and VEX/pub/libvex.h
that are in VEX commit 3202

Bugzilla 354797 was created for this issue.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15720
2015-11-03 17:48:04 +00:00
Florian Krohm
5085e06eb6 Fix a bug passing immediate values to ir_inject.c
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15710
2015-10-17 11:18:50 +00:00
Florian Krohm
1b73579e81 Link the vbit tester against libvex-<arch>-<os>.a
This allows to remove local copies of certain VEX functions.
VEX r3200 enables this.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15709
2015-10-16 17:29:54 +00:00
Florian Krohm
d6133786a6 Avoid a possible memory leak.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15673
2015-09-22 11:06:42 +00:00
Florian Krohm
a8a0c4bcce Add copyright/license comment.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15672
2015-09-22 07:21:50 +00:00
Florian Krohm
2b628c20a2 Update TODO list.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15671
2015-09-22 07:04:25 +00:00
Florian Krohm
079e74fe78 Break a few overly long lines.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15670
2015-09-22 07:03:38 +00:00
Carl Love
7161ebc00f Add Power PC ISA check to the vbit-test
The support for the Valgrind Iops is dependent on the Power processor
support for various instructions.  The instructions supported by a
given Power processor is based on the version of the ISA.  The patch
add a check to the vbit-test to ensure it does not try to test an Iop
that generates an instruction on the host that is not supported.

This patch fixes bugzilla 352765.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15653
2015-09-16 23:33:40 +00:00
Florian Krohm
93504b89c4 Changes related to new IROp Iop_RoundF128toInt. See VEX r3183.
s390: Add testcase for fixbr.
Patch by Andreas Arnez <arnez@linux.vnet.ibm.com>.
Part of fixing BZ #350290.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15629
2015-09-05 20:39:27 +00:00
Julian Seward
ac60633d65 Bug 345248 - add support for Solaris OS in valgrind
Authors of this port:
    Petr Pavlu         setup@dagobah.cz
    Ivo Raisr          ivosh@ivosh.net
    Theo Schlossnagle  theo@omniti.com
            


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15426
2015-07-21 14:44:28 +00:00
Florian Krohm
096bcbf059 Enable a few more compiler warnings.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15243
2015-05-16 16:17:52 +00:00
Julian Seward
082f9298a1 Add a port to Linux/TileGx. Zhi-Gang Liu (zliu@tilera.com)
Valgrind aspects, to match vex r3124.

See bug 339778 - Linux/TileGx platform support to Valgrind



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15080
2015-04-10 12:30:09 +00:00
Julian Seward
2eca28d9d3 Memcheck: add support for recently added IROps:
Iop_F64toF16 
Iop_F32toF16 
Iop_F16toF64 
Iop_F16toF32 



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15070
2015-04-06 14:52:28 +00:00
Julian Seward
149f6c980d Un-break the build following vex r3110. Thanks to PetarJ for the fix.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15052
2015-03-30 19:14:35 +00:00
Florian Krohm
f39011b8b6 Add STATIC_ASSERT and use it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15047
2015-03-28 18:36:01 +00:00
Florian Krohm
6dce653240 Add support for building with -fsanitize=undefined.
- add configure option --enable-ubsan 
- add __ubsan helpers (by Julian)

This requires gcc 4.9.2 or later. Not all platforms are supported, though.
With this change and VEX r3099 regression tests pass on amd64
with a valgrind compiled with -fsanitize=undefined.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14995
2015-03-10 16:13:59 +00:00
Florian Krohm
f029054493 Update opcode list following VEX r3092.
Add an assertion to trigger a compile time error in case this
happens again.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14961
2015-02-24 17:17:19 +00:00
Florian Krohm
75e739efc0 Revert accidental checkin for Makefile.am
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14914
2015-02-06 20:33:51 +00:00
Florian Krohm
c29515885b Fix undefined behaviours when shifting.
Found by libubsan.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14913
2015-02-06 20:32:15 +00:00
Florian Krohm
fe89cb4e4d Fix Makefile.am so it works for builds configured with
--enable-only32bit.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14849
2015-01-04 22:55:45 +00:00
Florian Krohm
569012f885 Avoid compiler warnings on s390x.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14817
2014-12-17 11:35:10 +00:00
Florian Krohm
f38d96dd61 Add -Wformat -Wformat-security to the list of compile flags.
This was not as straight forward as expected. Specifically, adding the
new flag to CFLAGS in configure.ac did not work and was causing
compiler warnings. For instance, compiling memcheck/tests/execve2.c will
generate a -Wnonnull warning even though the testcase is explicitly
compiled with -Wno-nonnull. The reason is that (a) -Wformat is implied by
-Wnonnull and (b) the list of compiler flags gets assembled in the wrong
order. The culprit appears to be that we modify CFLAGS in configure.ac and
that really is not the right place. Conceptually, configure should determine
tool-chain capabilities and not assemble compiler flags. That should be done
in Makefiles. This patch entangles all this.

So, whatever was added to CFLAGS in configure.ac has now been moved to
Makefile.all.am and Makefile.tool-tests.am. Those are:
-Wno-long-long
-Wwrite-strings
-Wcast-qual
-fno-stack-protector
Note, that this change allows us to simplify Makefile.tool-tests.am which
in the past was disabling some of those flags (e.g. by adding -Wno-cast-qual
again).
In case of the clang compiler, extra command line options are needed. I've
moved those into a separate 'if COMPILER_IS_CLANG' section and not merge
them into baseline flags.

Related to BZ 334727.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14798
2014-12-03 22:53:00 +00:00
Florian Krohm
d71ff248bd Add a missing break as identified by IBM's BEAM checker.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14519
2014-09-11 22:27:20 +00:00
Julian Seward
76aa4710d8 Track vex r2939 (renaming and arg-order change for Iop_Extract{64,V128}).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14404
2014-09-01 11:34:32 +00:00
Julian Seward
6a859c491c Track renaming of {reciprocal, reciprocal sqrt}{estimate, step}
primops in vex r2932.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14350
2014-08-24 14:02:22 +00:00
Mark Wielaard
262ce8ca11 Bug 338445 amd64 vbit-test fails with unknown opcodes used by arm64 VEX.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14327
2014-08-21 14:44:48 +00:00
Julian Seward
8ad42245b5 Track vex r2924 (Renaming of Iop_QSalN*, Iop_QShlN* and Iop_QShlN*S)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14282
2014-08-15 09:12:28 +00:00
Julian Seward
52dbd5df85 Track vex r2907, which amongst other things, renamed Iop_QDMulLong* to
Iop_QDMull*.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14178
2014-07-21 09:21:57 +00:00
Florian Krohm
e54abd4ed8 Track vex r2891 (add Iop_Reverse1sIn8_x16). Unbreak build.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14155
2014-07-11 21:54:33 +00:00
Julian Seward
3622799156 Track vex r2890 (renaming of vector subparts-of-lanes-reversal IROps)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14103
2014-06-26 10:51:03 +00:00
Julian Seward
e7e49c4d77 Track vex r2889 (rename vector Cls/Clz primops)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14102
2014-06-26 08:22:01 +00:00
Florian Krohm
8d00fd3184 Add Iop_Abs64x2; unbreak build.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14079
2014-06-22 07:35:03 +00:00
Florian Krohm
bd3b47c9e3 Fix V-bit tester failures introduced by VEX r2815.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13807
2014-02-14 09:08:39 +00:00
Florian Krohm
5b0ce0cc5e Fix V-bit tester failures introduced by VEX r2812.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13790
2014-02-06 18:53:30 +00:00
Dejan Jevtic
8eec882079 mips32: Change the tests values so that the result is
the same on all mips32 platforms. Add extra cases in 
vbit-test for mips32.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13687
2013-10-23 14:07:15 +00:00
Carl Love
30565b278a This commit adds testing support for the following instructions:
vaddcuq, vadduqm, vaddecuq, vaddeuqm,
  vsubcuq, vsubuqm, vsubecuq, vsubeuqm,
  vbpermq and vgbbd.

The completes adding the Power ISA 2.07 support.

Bugzilla 325816

VEX commit id 2790


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13653
2013-10-18 01:20:11 +00:00
Carl Love
d143dd1f43 Power 8 support, phase 5
This commit adds the testcases for the following instructions:

  vpmsumb, vpmsumh, vpmsumw, vpmsumd, vpermxor, vcipher, vcipherlast,
  vncipher, vncipherlast, vsbox,
  vclzb, vclzw, vclzh, vclzd,
  vpopcntb, vpopcnth, vpopcntw, vpopcntd,
  vnand, vorc, veqv,
  vshasigmaw, vshasigmad,
  bcdadd, bcdsub

The VEX commit that added the support for the above instructions was 
commit 2789.

The patch is for Bugzilla 325628


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13646
2013-10-15 18:13:21 +00:00
Dejan Jevtic
f0b787e8bf mips32: Don't test Iops that aren't supported in VEX.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13629
2013-10-09 08:33:18 +00:00
Dejan Jevtic
961e487650 mips64: add extra Iop cases in VEX and fix compiler
warning.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13624
2013-10-07 10:27:31 +00:00
Carl Love
d568595cd1 Add tests for the phase 3 ISA 2.07 code patch
This patch adds testcases to an existing testcase
source file to test the new instructions which were
added to VEX support in the phase 3 ISA 2.07 code patch.
The patch also makes a small change to memcheck's
vbit tester code to allow successful execution.

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

Bugzilla 324894.   Corresponding VEX commit 2779

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13594
2013-10-01 15:50:09 +00:00
Dejan Jevtic
72825d3c36 mips32/64: add extra test cases in vbit-test for mips32/64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13569
2013-09-19 13:36:12 +00:00
Dejan Jevtic
72bf3648cb mips64: add extra test cases in vbit-test for mips64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13540
2013-09-11 15:35:33 +00:00
Dejan Jevtic
6fa3517d39 mips64: Add some test cases for mips64 in vbit-test.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13517
2013-08-28 10:03:45 +00:00
Carl Love
95d8477491 Initial ISA 2.07 support for POWER8-tuned libc
The IBM Power ISA 2.07 has been published on power.org, and IBM's new POWER8
processor is under development to implement that ISA. This patch provides
initial runtime and testsuite support for running Valgrind on POWER8 systems
running a soon-to-be released Linux distribution. This Linux distro will
include a POWER8-tuned libc that uses a subset of the new instructions from
ISA 2.07.  Since virtually all applications link with libc, it would be
impossible to run an application under Valgrind on this distro without adding
support for these new instructions to Valgrind, so that's the intent of this
patch. Note that applications built on this distro will *not* employ new POWER8
instructions by default. There are roughly 150 new instructions in the Power
ISA 2.07, including hardware transaction management (HTM). Support for these
new instructions (modulo the subset included in this bug) will be added to
Valgrind in a phased approach, similar to what we did for Power ISA 2.06.

Bugzilla 322294, VEX commit 2740

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13494
2013-08-12 18:04:22 +00:00
Florian Krohm
849b105814 valgrind side changes to support the new IRops introduced
in VEX r2727 (conversion ops between binary floating point and
decimal floating point).
Patch by Maran Pakkirisamy (maranp@linux.vnet.ibm.com).
Part of fixing BZ 307113.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13428
2013-06-17 19:04:24 +00:00