Commit Graph

79 Commits

Author SHA1 Message Date
Carl Love
3c751e88ac Powerpc big endian, fix the expected output file for
none/tests/ppc64/jm_int_isa_2_07.stdout.exp

By convention the file jm_int_isa_2_07.stdout.exp is the big endian reuslts.
If the little endian results differ, the file has -LE appended to it.
This patch replaces the little endian results that are currenttly in
none/tests/ppc64/jm_int_isa_2_07.stdout.exp with the correct the big
endian results.

Bugzilla 369169


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15977
2016-09-22 15:37:57 +00:00
Mark Wielaard
23615e5bb3 Add none/tests/ppc64/ppc64_helpers.h to noinst_HEADERS.
Makes sure that the header file will be included in the dist tar.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15968
2016-09-19 22:03:34 +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
68a17eeb24 When running the valgrind tests, the jm-insns test is segfaulting when it
attempts to patch instructions as it deals with the ppc64 (BE) function
descriptor. This is actually due to the RELRO option being enabled by default
for the ppc64 (BE) platform, per an upstream binutils change.

Bugzilla 365912 reported by  Will Schmidt, Will supplied the patch to fix the
make file none/tests/ppc64/Makefile.a

Patch tested on Power 7 and Power 8.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15917
2016-07-28 16:51:53 +00:00
Carl Love
8db3f9d608 Power PC test suite for ISA 3.0, part 4
The test suite support for the Power PC ISA 3.0 instructions added in
VEX commit 3222 is added in this commit.

Note, this is part 4 of 5.  The NEWS file will be updated when the ISA 3.0
support is complete.

valgrind bugzilla 363858


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15896
2016-06-29 18:09:57 +00:00
Carl Love
e72b1dd772 Power PC Add test suite support for ISA 3.0, part 3
The test suite support for the Power PC ISA 3.0 instructions added in
VEX commit 3220 is added in this commit.

Note, this is part 2 of 5.  The NEWS file will be updated when the ISA 3.0
support is complete.

valgrind bugzilla 362329


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15890
2016-06-01 18:13:19 +00:00
Carl Love
8b6b6958e2 Power PC Add test suite support for ISA 3.0, part 2
The test suite support for the Power PC ISA 3.0 instructions added in
VEX commit 3217 is added in this commit.

Note, this is part 2 of 5.  The NEWS file will be updated when the ISA 3.0
support is complete.

valgrind bugzilla 359767

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15870
2016-04-26 17:37:05 +00:00
Carl Love
b9a5fed275 Power PC Add test suite support for ISA 3.0, part 1
The test suite support for the Power PC ISA 3.0 support is added in this commit.  The
following files were added:

   none/tests/ppc64/ppc64_helpers.h
   none/tests/ppc64/test_isa_3_0.c
   none/tests/ppc64/test_isa_3_0_altivec.stderr.exp
   none/tests/ppc64/test_isa_3_0_altivec.stdout.exp
   none/tests/ppc64/test_isa_3_0_altivec.vgtest
   none/tests/ppc64/test_isa_3_0_other.stderr.exp
   none/tests/ppc64/test_isa_3_0_other.stdout.exp
   none/tests/ppc64/test_isa_3_0_other.vgtest

The following file was modified:
   none/tests/ppc64/Makefile.am 

Note, the NEWS file was not updated as the ISA 3.0 support is not complete yet. This is the
first of five sets of commits needed to add all of the ISA 3.0 support.

valgrind bugzilla 359767

Corresponding Valgrind support added in:
  VEX commit 3214
  valgrind commit 15837

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15838
2016-03-29 21:47:00 +00:00
Carl Love
1df0d33a8c Power PPC test case test_isa_2_07 steps out of array bounds.
The test none/tests/ppc64/test_isa_2_07.c steps beyond the data array in a
number of places. The issue is the array is declared to be of size N. The for
loop is: for (i=0; i<N; i=i+2). In the body of the loop the array elements
A[i] and A[i+1] are accessed. On the last iteration i=N-1 and the second array
access becomes A[N-1+1] which accesses one element past the declared array
size.

This commit fixes the array bounds by making the for loop read:  
  
   for (i=0; i<N-1; i=i+2)

The expected output files 

none/tests/ppc64/jm_int_isa_2_07.stdout.exp 
none/tests/ppc64/jm_vec_isa_2_07.stdout.exp

are updated with the new expected results.

Valgrind Bugzilla 359829


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15816
2016-02-26 17:38:47 +00:00
Carl Love
0e62935bd4 Power PPC 128bit modulo and carry instruction fix
VEX commit 3209 fixed: an issue with caculating the carry to the next 32-bit
chunk for the Power PPC 128-bit add and subract instructions: vaddcuq, vadduqm,
vsubcuq, vsubuqm, vaddecuq, vaddeuqm, vsubecuq, vsubeuqm

The corresponding test case didn't catch the issue.  This commit adds data
values to the test that verify the issue is fixed.

Valgrind Bugzilla 359472 


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15790
2016-02-16 21:23:52 +00:00
Mark Wielaard
b4d7d70d2a Bug 351873 Newer gcc doesn't allow __builtin_tabortdc[i] in ppc32 mode.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15615
2015-09-02 15:43:31 +00:00
Carl Love
059aa611c1 Patch 7 of 7, improve PPC HW capabiltiy checking.
The patch was submitted by Will Schmidt  (will_schmidt@vnet.ibm.com).

A handful of cosmetic changes to the ppc32 and ppc64 makefiles.
Cleans up some whitespace issues, spaces/tabs/etc,
Rearranges some of the contents so they are logically group, and
more consistent between the 32- and 64- bit versions of the same.

Bugzilla 34979


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15425
2015-07-20 22:22:42 +00:00
Carl Love
aa85e04a41 Patch 4 and 5 of 7, improve PPC HW capabiltiy checking.
The patch was submitted by Will Schmidt  (will_schmidt@vnet.ibm.com).

Patches 4 and 5 need to be applied together.  Add convenience function
for processing hwcap entries. Add logic to check for HTM support in compiler.

Bugzilla 34979


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15423
2015-07-20 21:25:32 +00:00
Carl Love
8c1cc04641 Patch 2 of 7, improve PPC HW capabiltiy checking.
The patch was submitted by Will Schmidt  (will_schmidt@vnet.ibm.com).

Update all vgtest files to reference the new capability check helper.
This includes a few adjustments to ensure the test is checking for
the specific capability. I.e. isa_2_07 is a requirement for htm, but
does not indicate htm support is actually present.

Bugzilla 34979


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15421
2015-07-20 19:36:53 +00:00
Carl Love
c4fb707788 Backing out patch 1 and 2 from Bugzilla 349790.
The new script (tests/check_ppc64_auxv_cap) in the first patch was
written for the bash shell.  I was told by fkrohm that there was an
issue with bash sometime ago and the decision was to use sh instead.
sh maps to bash on a lot of systems but on some it maps to dash.  The
script is not compatible with dash.  

In retesting the second patch with a fresh svn pull, I found that I
forgot to do the svn add for the new script file.  Which causes the
regression test to fail with the second patch applied.  

So, I have decided it will be best to just back out patch 1 and 2 for now.
I will fix the script and do this again.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15390
2015-07-01 21:29:12 +00:00
Carl Love
633ec0c887 Patch 2 of 6
Update all vgtest files to reference the new capability check helper.
This includes a few adjustments to ensure the test is checking for
the proper capability. (i.e. htm versus isa_2_07).

Patch 1 valgrind commit id 15388.

The bugzilla for this commit is 349790

Patch submitted by 	 Will Schmidt <will_schmidt@vnet.ibm.com>
Reviewed and tested by Carl Love <cel@ibm.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15389
2015-07-01 19:44:13 +00:00
Carl Love
0541991ed0 Update the expected output file none/tests/ppc64/jm_int_isa_2_07.stdout.exp
for PPC64 big endian.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15124
2015-04-21 20:06:13 +00:00
Carl Love
0a9b6b47d8 Add support for the lbarx, lharx, stbcx and sthcs instructions.
One of the expect files was missing.  Also found that there 
was a bug in the stq, stqcx, lq and lqarx instructions for LE.
The VEX commit for the instruction fix was 3138.

This commit updates the expect files for the corrected instructions
and adds the missing expect files.

The bugzilla for the orginal issue of the missing instructions
is 346324.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15120
2015-04-20 23:38:33 +00:00
Carl Love
eb5aced360 Add support for the lbarx, lharx, stbcx and sthcs instructions.
The instructions are part of the ISA 2.06 but were not implemented
in all versions of hardware.  The four instructions are all supported
in ISA 2.07.  The instructions were put under the ISA 2.07 category
of supported instructions in this patch.

The VEX commit for this fix is r3137.

The bugzilla for this issue is 346324.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15106
2015-04-17 23:43:36 +00:00
Florian Krohm
457f0b2d1a The testbuckets none/tests/ppc{32,64} did not build in case the
toolchain did not support -maltivec -mabi=altivec.
This should work now. Fixes BZ #338731


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14566
2014-09-24 22:02:54 +00:00
Carl Love
2fabdec65e The update fixes a format issue in the PPC test
none/tests/ppc32/jm-insns.c and none/tests/ppc64/jm-insns.c.
The BE and LE output expect files are updated as well.

There is no Bugzilla related to this update.  The issue
was found and the initial patch and BE output update 
was done by Florian Krohm <florian@eich-krohm.de>.
Carl Love <cel@us.ibm.com> added the LE output update.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14466
2014-09-05 18:05:24 +00:00
Carl Love
4a227327b7 creating the lind from none/tests/ppc64/round.c to none/tests/ppc32/round.c
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14291
2014-08-15 16:44:32 +00:00
Carl Love
cadab32c50 Removing the file none/tests/ppc64/round.c so I can change it to a link.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14290
2014-08-15 16:40:03 +00:00
Carl Love
5f6905953b This commit is an update to Bugzilla 334836
There are two copies of the round test in none/tests/ppc32/round.c
and none/tests/ppc64/round.c.  The two source files should be
identical. The LE functional test commit updated the round.c test for
ppc64 but was missing the ppc32 round updates.  The round.c test was
updated to fix an issue where we were getting different outputs
depending on the compiler.  The output is now consistent for the
compilers allowing the removal of the additional expect files for
ppc32 and ppc64.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14278
2014-08-14 16:54:48 +00:00
Carl Love
0689c096e5 This commit is for Bugzilla 334836. The Bugzilla contains patch 3 of 3
to add PPC64 LE support.  The other two patches can be found in Bugzillas
334384 and 334834.  Note, there are no VEX changes in this patch.


PP64 Little Endian test case fixes.

This patch adds new LE and BE expect files where needed.  In other
cases, the test was fixed to run correctly on LE and BE using based on
testing to see which platform is being used.

Where practical, the test cases have been changed so that the output
produced for BE	 and LE will be identical.  The test cases that require
a major rewrite to make the output identical for BE and LE simply
had an additional expect file added.

Signed-off-by: Carl Love <carll@us.ibm.com>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14240
2014-08-07 23:49:27 +00:00
Carl Love
49987d5c4a This commit is a fix for "Bug 330622 - Add test to regression suite for POWER
instruction: dcbzl" submitted by Anmol P. Paralkar <paralkar@freescale.com>

The patch adds the following files:

 none/tests/ppc64/data-cache-instructions.vgtest
 none/tests/ppc64/data-cache-instructions.c
 none/tests/ppc64/data-cache-instructions.stdout.exp
 none/tests/ppc64/data-cache-instructions.stderr.exp
 none/tests/ppc32/data-cache-instructions.stdout.exp
 none/tests/ppc32/data-cache-instructions.c
 none/tests/ppc32/data-cache-instructions.vgtest
 none/tests/ppc32/data-cache-instructions.stderr.exp
 tests/power_insn_available.c


The following files are modified:

 none/tests/ppc32/Makefile.am
 none/tests/ppc64/Makefile.am
 tests/Makefile.am





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13791
2014-02-08 02:19:12 +00:00
Carl Love
c2714c0d18 This patch by adrian.sendroiu@freescale.com fixes the lrmw and stmw
instructions.

The patch also adds ppc32 and ppc64 test cases for the instructions.

The patch is a fix for bugzilla 329956 "valgrind crashes when lmw/stmw instructions are used on ppc64".

The VEX code commit is 2802




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13780
2014-01-24 16:44:08 +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
Carl Love
8044c5ce56 Power PC, add the two privileged Transactional Memory instructions.
The initial Transactional Memory instruction patch did not include the two
privileged (OS) instructions treclaim and trechkpt. VEX commit 2784 added
the support for these two instructions.

This patch adds a touch test to make sure all of the POWER Transactional
memory instrutions are recognized by Valgrind.  All of the the Transactional
Memory instructions, with the exception of tbegin, are treated as NOPs in the
first implementation.  The tbegin instruction causes the transaction to fail
thus no additional Transactional Memory instructions on the successful
transaction path would be executed in a real program.  This test just makes
sure each instruction is actually recognized by Valgrind.

The patch if for Bugzilla 325751.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13630
2013-10-09 17:56:34 +00:00
Carl Love
0a3fd151e3 Phase 4 support for IBM Power ISA 2.07
This patch adds testcases for the following instructions added 
in phase 4.  The instructions are for doing various arithmetic,
logic, and load/store VSX operations:

  xscvsxdsp xscvuxdsp xsaddsp xssubsp xsdivsp xsmaddasp xsmaddmsp
  xsmsubasp xsmsubmsp xsnmaddasp xsnmaddmsp xsnmsubasp xsnmsubmsp
  xsmulsp xssqrtsp xsresp xsrsqrtesp xsrsp xxlorc xxlnand xxleqv
  lxsiwzx lxsiwax lxsspx stxsiwx stxsspx

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

VEX commit for the instruction support r2781
Bugzilla 325477


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13611
2013-10-03 21:43:10 +00:00
Carl Love
e9b1e99239 The test case for the Transaction Memory instructions failes with older
compilers as the -mhtm flag is not known.  The patch fixes the makefile
issue and addes #defines to the testcase code.

The testcase was added in valgrind commit 13607.

The bugzilla for adding the TM instruction support is 323803

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13608
2013-10-02 17:48:48 +00:00
Carl Love
c6765a43dc IBM POWER PC, Add the Transactional Memory test case
The test case for the transaction memory instructions executes the
failure path when run under valgrind.  This is since the initial
Transaction Memory implemnetation is to simply fail the TBEGIN instruction
forcing the execution flow to take the failure path.  When the
test case is executed on the real hardware, the success path will
be taken.  Only the TBEGIN instruction actually does anything.  All other
transactional memory instructions are NOPs since only failure path is executed
and it assumed to not have any transactional memory instructions on it.

Signed-off-by: Carl Love <cel@us.ibm.com>

VEX commit revision 2780
Bugzilla 323803

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13607
2013-10-02 16:28:57 +00:00
Mark Wielaard
b53af2e1f2 Add opcodes.h to EXTRA_DIST for none/tests/ppc[32|64].
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13602
2013-10-02 13:17:56 +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
Carl Love
f7d200127b Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
The patch was supplied by Anmol P. Paralkar.

Valgrind Bugzilla 325110


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13574
2013-09-20 17:32:06 +00:00
Carl Love
960e2c2b3f The patch fixes the assembly of the Power dcbtst and dcbt instructions.
The assembly of these instructions is not alwasy being done correctly as
described in the following email reply.

  Re: Assembling Power instructions: dcbtst/dcbt.

      From: Peter Bergner <bergner at vnet dot ibm dot com>
      To: Paralkar Anmol-B07584 <B07584 at freescale dot com>
      Cc: "amodra at bigpond dot net dot au" <amodra at bigpond dot net dot au>, "binutils at sourceware dot org" <binutils at sourceware dot org>
      Date: Fri, 13 Sep 2013 15:22:35 -0500
      Subject: Re: Assembling Power instructions: dcbtst/dcbt.
      Authentication-results: sourceware.org; auth=none
      References: <DC6D7B34688246489A6578981A5ADEB9302A07 at 039-SN2MPN1-012 dot 039d dot mgd dot msft dot net>

  On Fri, 2013-09-13 at 18:32 +0000, Paralkar Anmol-B07584 wrote:
  > Hello,
  >
  >  Per Power ISA Version 2.07 (May 3, 2013) "4.3.2 Data Cache Instructions",
  >  the assembly language syntax for the dcbtst instruction (pp. 771) is:
  >
  >  dcbtst RA,RB,TH [Category: Server]
  >  dcbtst TH,RA,RB [Category: Embedded]
  >
  >  and it's layout in the object code is:
  >
  >   +------+------+------+------+------------+---+
  >   |  31  |  TH  |  RA  |   RB |  246(0xF6) | / |
  >   |0     |6     |11    |16    |21          |31 |
  >   +------+------+------+------+------------+---+
  >
  >  (Analogously: dcbt pp. 770)
  >
  >  However, GAS (as of version 2.23.52.20130912) decides on the syntax to use based on
  >  processor/architecture dialect (not Power ISA Category), using the Server syntax in
  >  the case of POWER4 and the Embedded syntax for generic PPC or VLE.

  That was a bug fixed here:

      https://sourceware.org/ml/binutils/2012-11/msg00352.html

  >  Consequently (e.g.),
  >
  >  dcbtst 17, 14, 6
  >
  >  in the assembly file gets "misassembled" under -many for a user-space program on Linux:

  When you only specify -many (and not one of -mpower4, -mpower5, etc.),
  the assembler/disassembler will choose a default -m<CPU> value for
  you.  That has changed over time, but is generally one of the newer
  server cpus.  For example, for binutils trunk, the default is now
  -mpower8 and for your 2.23.x binutils, it is -mpower7.
  That should force the assembler and disassembler to assemble
  the instruction using the server operand order you want, but the bug
  above (which is in 2.23) basically resets it to an old cpu, so it
  chooses to use the embedded/old cpu setting.

The patch from Amodra fixes the issue by manually generating the correct
hex value for the instruction rather then leaving it to the assembler to
generate the hex value from the symbolic assembly instruction name.

This is the fix for Bugzilla 324765.  

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13562
2013-09-18 16:06:46 +00:00
Carl Love
6f2f615e04 The Power ISA 2.07 document includes a correction to the description for the
behavior of the xscvspdp instruction, indicating that if the source argument
is a SNaN, it is first changed to a QNaN before being converted from
single-precision to double-precision. This updated information about the
xscvspdp instruction exposed a bug in the VEX implementation for that
instruction and also a bug in the testing for all instructions having
special behavior for single-precision SNaN arguments.

The VEX code fix for this issue is r2760.

This patch fixes the test cases for the ISA 2.07.

Testing bug: In several ppc[64] test cases, an array of special
double-precision floating point values is set up, and then all elements of
that array are copied via assignment to a single-precision array ('float'
type). Assignment from a double to a float works fine for all cases, except for
SNaN values. In the case of a SNaN, the source is changed to a QNaN and then
converted to single-precision. So the end result was that our array of floats
did not have an actual SNaN value, and, therefore, any instructions that had
special behavior for a single-precision SNaN input argument was never being
properly tested. This patch makes some functional changes in the following
testcases: 

  none/tests/ppc[32|64]/test_isa_2_06_part2.c
  none/tests/ppc[32|64]/test_isa_2_06_part3.c
  none/tests/ppc[32|64]/test_isa_2_07_part2.c

These changes impacted the associated *.stdout.exp files, so the patch also
updates those files. Additionally, there were several errors in testcase
source comments that misidentified QNaN and SNaN bit patterns which this patch
corrects.
 
See bugzilla 324816.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13544
2013-09-12 17:38:13 +00:00
Carl Love
51c2bfd3ce Bugzilla 323437, this is phase 2 in a series of patches adding support for IBM
Power ISA 2.07. The first bugzilla in the series was: 322294: Add initial
support for IBM Power ISA 2.07

Phase 2 VEX commit 2756 added support for the following new instructions to
VEX/priv/guest_ppc_toIR.c:
 - lq, stq, lqarx, stqcx.
 - mfvsrwz, mtvsrwz
 - fmrgew, fmrgow

This commit adds the corresponding test cases for these instructions.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13539
2013-09-10 19:01:00 +00:00
Carl Love
44901807b3 The existing overflow detection in VEX/priv/guest_ppc_toIR.c/set_XER_OV_64()
under the case PPCG_FLAG_OP_MULLW: does not apply to the mulldo as we need to
detect overflow when performing a Multiply Low Doubleword (not Multiply Low
Word). Hence, we added a new enumeration value PPCG_FLAG_OP_MULLD in
VEX/priv/guest_ppc_defs.h and a corresponding new case under which the
computation for detecting overflow for mulldo/mulldo. is added in
set_XER_OV_64(). The tests have been added to: none/tests/ppc32/jm-insns.c

Vex commit 2754 for the source code fix

This commit adds the test cases.

Bugzilla 324594, submitted by Anmol P. Paralkar

Patch reviewed and tested by Carl Love


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13537
2013-09-06 22:29:55 +00:00
Carl Love
f356faf958 Oops, forgot to add the new files before the commit for r13534.
Bugzilla 324518

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13535
2013-09-05 21:22:37 +00:00
Carl Love
bbe72ab090 The current VEX code is not properly handling a non-zero TH field in the
dcbt instruction, which is valid for several forms of data cache block
touch instructions.  The VEX commit 2761 fixed the missing support in
VEX/priv/guest_ppc_toIR.c.  This commit adds tests for the the non-zero
fields to the test cases for 32 and 64-bit modes.

Bugzilla 324518

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13534
2013-09-05 19:50:41 +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
Philippe Waroquiers
831cddf0a1 fix 303127 Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions
The frsqrte and vrefp instructions produce an approximate result.
According to the ISA document for the POWER processor, the result will
vary in its precision for different processor implementations.  This patch
fixes the masks to be applied to the results to remove the variability
in the results.  The expected output files are also updated to reflect the
change in the result given the new masking of the result.

patch from Carl Love <cel@us.ibm.com>



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12720
2012-07-06 22:52:09 +00:00
Philippe Waroquiers
2254b8ab60 fix 303116 - Add support for the POWER instruction popcntb (Valgrind side)
patch from carll@us.ibm.com


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12719
2012-07-06 21:59:03 +00:00
Philippe Waroquiers
4160fb96ff fix 302918 Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12718
2012-07-06 21:42:14 +00:00
Bart Van Assche
8235b63124 Fix compiler warnings for ppc test cases. Patch from Carl Love (carll@us.ibm.com). See also #302205.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12663
2012-06-23 11:04:01 +00:00
Julian Seward
ccf880a48c 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
2012-06-02 23:48:06 +00:00
Julian Seward
6e0e5e15c5 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
2012-04-29 20:20:16 +00:00
Julian Seward
72eb6b7a7e 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
2012-04-23 11:22:05 +00:00