[valgrind] [Bug 371128] BCD add and subtract instructions on Power BE in 32-bit mode do not work.
https://bugs.kde.org/show_bug.cgi?id=371128 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 371128] BCD add and subtract instructions on Power BE in 32-bit mode do not work.
https://bugs.kde.org/show_bug.cgi?id=371128 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #2 from Carl Love --- The source tree was pulled down into clean directories on my Power 7 and Power 8 BE machines and retested. I checked the files to make sure the changes were there. Everything looks good. Closing the bug as fixed. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 371128] BCD add and subtract instructions on Power BE in 32-bit mode do not work.
https://bugs.kde.org/show_bug.cgi?id=371128 --- Comment #1 from Carl Love--- Created attachment 101625 --> https://bugs.kde.org/attachment.cgi?id=101625=edit Fix for bcd add subtract instruction on BE in 32-bit mode The patch has been added to the bugzilla. The patch was committed upstream, Vex commit 3271, Valgrind commit 16072 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 371128] New: BCD add and subtract instructions on Power BE in 32-bit mode do not work.
https://bugs.kde.org/show_bug.cgi?id=371128 Bug ID: 371128 Summary: BCD add and subtract instructions on Power BE in 32-bit mode do not work. Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The bcd add and subtract instructions on BE when running in 32-bit mode do not work due to the use of 64-bit compares. The 64-bit compare Iops are not supported in 32-bit mode. The compares fortunately were for hex values. So the 64-bit compares were changed to 32 bit compares with the appropriate changes to the type of the constants being compared. Secondly, the clean helper call was not supported in 32-bit mode. Note, 32-bit mode is not supported for little endian mode so this is only an issue for big endian mode. Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #7 from Carl Love --- Reclosing as the issue -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 --- Comment #5 from Carl Love--- The changes as proposed by Mark above were made. They were tested on Power 7, Power 8 BE and LE. The changes have been committed. Valgrind commit 16037. Mark please take a look at the changes upstream and let me know if it all looks OK to you. Thanks for catching this. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 Carl Lovechanged: What|Removed |Added Status|CLOSED |REOPENED Resolution|FIXED |--- --- Comment #4 from Carl Love --- Mark, yup that is a failure. I went back and double checked my regression test runs before I did the commit and I did miss the introduction of the vbit test failure. Note, the nightly regression tests from last night also report the new vbit tester error. I have reopened the bug and am testing your proposed changes. Thanks for catching this. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|CONFIRMED |RESOLVED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 --- Comment #2 from Carl Love--- Configure patch committed in Valgrind commit 16034 NEWS file updated in Valgrind commit 16035. Noted the bugzilla listed in commit 16034 was supposed to say bugzilla 370265 not 369175. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|CONFIRMED |RESOLVED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #35 from Carl Love--- testsuite fix to give more unique values. In testing issues with the new ISA 3.0 instructions in BE mode, it was found that we needed some more unique values in the operands to catch various errors. The issue is a sigle 32-bit value was replicated four times for a V128 operand. The result is testing loads and stores where the word or half word order was swizzled couln't be detected because they were the same. By making the 32-bit chunks unique we were able to catch additional errors. The initialize_buffer() function in none/tests/ppc64/ppc64_helpers.h was changed to ensure we got more unique values. The result is the ISA 3.0 expected output files changed. The expect files were for LE. The expect files were updated for the BE results and the LE result file was added with the "-LE" on the end of the file name per convention. The patch is large so I did not attach it to the bug. Committed in Valgrind commit 16032 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #34 from Carl Love--- ISA 3.0 BE fixes for various new instructions patch committed VEX commit 3260 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #33 from Carl Love--- Created attachment 101482 --> https://bugs.kde.org/attachment.cgi?id=101482=edit ISA 3.0 BE fixes for various new instructions This is an additional commit to fix issues found with the new Power ISA 3.0 instructions for BE mode. The instructions fixed in this patch include: lxvl, lxvx, lxvwsx, lxvh8x, lxvh16x, stxvx, stxvh8x, stxvh16x, lxsibzx, lxsihzx, xscvqpdp, xscvqpdp0, xvcvsphp. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 Carl Lovechanged: What|Removed |Added CC||will_schm...@vnet.ibm.com Ever confirmed|0 |1 Status|UNCONFIRMED |CONFIRMED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 --- Comment #1 from Carl Love--- Created attachment 101480 --> https://bugs.kde.org/attachment.cgi?id=101480=edit hardware cap update Patch submitted by Will Schmidt. Patch applies cleanly, patch is being tested. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 370265] New: ISA 3.0 HW cap stuff needs updating
https://bugs.kde.org/show_bug.cgi?id=370265 Bug ID: 370265 Summary: ISA 3.0 HW cap stuff needs updating Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The ISA 3.0 hw cap info variables were listed as ISA_3_0, should be ISA_3_00. Also the configure file is missing the needed line: +AC_HWCAP_CONTAINS_FLAG([arch_3_00],[HWCAP_HAS_ISA_3_00] Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #32 from Carl Love--- Patch to fix missing fnptr_to_fnentry() wrapper funion calls for clean and dirty helpers was committed, VEX commit 3251. The BE fixes for the function FPU_rounding_mode_isOdd(), stxvl and stxvx instructions was committed, VEX commit 3252 Patch for the load and store instructions in BE mode is still pending. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #31 from Carl Love--- Created attachment 101364 --> https://bugs.kde.org/attachment.cgi?id=101364=edit Some BE fixes The BE simulator runs found a few more issues that cause Valgrind to fail. These are minor things that were easy to fix. The attached patch addresses these issues. The BE testing has also detected that some of the load and store instructions are not loading the data in the expected BE order. Working on a patch for these instructions. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #29 from Carl Love--- Created attachment 101332 --> https://bugs.kde.org/attachment.cgi?id=101332=edit Patch to fix missing fnptr_to_fnentry() wrapper function calls for clean and dirty helpers The attached patch fixes the missing fnptr_to_fnentry() calls for the clean and dirty calls. This patch is based on patch 101296 by Mark Wielaard but with the fnptr_to_fentry() call added to all of the other clean and dirty handlers where it was missing. Note, the order of the arguments in the function calls was also changed but that is just a "cosmetic" change The fnptr_to_fnentry() fix was tested and verified on a Power 7 (Big endian) system by applying patch 101299. The patch basically allows us to test the control flow for the bcdadd and bcdsub instructions without actually generating the bcdadd or bcdsub instructions on a Power 7. Instead of the bcdadd and bcdsub instructions being generated, the vand instruction which is supported by Power 7 is generated. With patch 101299, the bug in the clean helper was verified on a big endian system. Then when the fnptr_to_fentry() fix (patch 101296) was applied the clean helper executes correctly. The full regtest suite has been run with the attached patch applied to the current upstream code base on a Power 8 Big endian and Power 8 Little endian systems. The regtest suite on the patched upstream code has been tested and verified on an ISA 3.0 Little endian simulator. The ISA 3.0 Big endian test is currently still running. Unfortunately, building Valgrind from scratch and running the regtest literally takes all day. Please review the patch and let me know if you see any issues. If everyone approves the patch and the ISA 3.0 Big endian test passes, I will commit the fix. The fix will need to get staged for the upcoming Valgrind release. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #28 from Carl Love--- Posted a patch to replace the bcdadd instruction generation in Valgrind with vand. This patch allows us to run a bcd add test on a power 7 (big endian) machine to test the ISA 3.0 code that calls is_BCDstring128() function to see if the function pointer stuff for clean helpers is broken on the older big endian machines. Also posted the compiled bcd_test.c test program. I ran the patch and binary bcd_test program on a Power 7. It does appear to segfault the same as we are seeing on Power 8 BE. Note, this was done WITH OUT Mark's patch applied. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #27 from Carl Love--- Created attachment 101300 --> https://bugs.kde.org/attachment.cgi?id=101300=edit binary for bcd_add.c test Binary for the bcd_test.c program. Runs under valgrind on Power 7 with the valgrind bcdadd patch previously posted. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #26 from Carl Love--- Created attachment 101299 --> https://bugs.kde.org/attachment.cgi?id=101299=edit patch, replace isa2_07 bcdadd/bcdsub with isa2_06 vand inst to we can run bcdadd test on Power 7 Replace bcdadd, bcdsub with vand so we can run bcdadd test on a power 7 to test the clean helper issue. Ignore compiler warnings about unused variables. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 --- Comment #14 from Carl Love--- Created attachment 101245 --> https://bugs.kde.org/attachment.cgi?id=101245=edit simple test program The attachment is a stripped down test for the bcdadd instruction. It was pulled out of the jm_vec_isa_2_07 test. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369175] jm_vec_isa_2_07 test crashes on ppc64
https://bugs.kde.org/show_bug.cgi?id=369175 Carl Lovechanged: What|Removed |Added CC||c...@us.ibm.com, ||will_schm...@vnet.ibm.com Ever confirmed|0 |1 Status|UNCONFIRMED |CONFIRMED --- Comment #2 from Carl Love --- I have some what isolated where the issue when running on Power 7 BE (issue does not occur on LE) is but at this point could use some help getting to the root cause. in VEX/priv/guest_ppc_toIR.c in the function dis_av_bcd() there is a case statement that handles the bcdadd and bcdsub instructions. Once the result of the operation is completed, we have to compute some values to set the CR field 6. The calculation of the valid bit is as follows: valid = unop( Iop_64to32, binop( Iop_And64, is_BCDstring128( /* Signed */True, mkexpr( vA ) ), is_BCDstring128( /* Signed */True, mkexpr( vB ) ) ) ); Note, is_BCDstring128() calls a clean helper written in C. The issue is making the two calls above leads to a segmentation fault. I rewrote the computation as follows to isolate out the computations: assign( A_isBCDstr, is_BCDstring128( /* Signed */True, mkexpr( vA ) ) ); // assign( A_isBCDstr, mkU64( 0 ) ); assign( B_isBCDstr, is_BCDstring128( /* Signed */True, mkexpr( vB ) ) ); // assign( B_isBCDstr, mkU64( 0 ) ); valid = unop( Iop_64to32, binop( Iop_And64, mkexpr( A_isBCDstr ), mkexpr( B_isBCDstr ) ) ); Now if I make the call to is_BCDstring128() for vA and vB I get the segmentation fault. If I comment out either computation and put in the appropriate commented out line to just explicitly set the result to zero, I do not get a segmentation fault. The segmentation fault occurs later when the IR code is actually executed. I am guessing that somehow the generation of the IR code with two back to back clean helper calls results in bad code that causes the segmentation fault. Unfortunately, the issue is a bit deeper in Valgrind then I am familiar with. I am looking for help to debug this issue. Please let me know if there is a way we can dump out the generated code and so we can examine it. Thanks. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369169] ppc64 fails jm_int_isa_2_07 test
https://bugs.kde.org/show_bug.cgi?id=369169 Carl Lovechanged: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #7 from Carl Love --- patch committed valgrind commit 15977 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 369169] ppc64 fails jm_int_isa_2_07 test
https://bugs.kde.org/show_bug.cgi?id=369169 Carl Lovechanged: What|Removed |Added CC||c...@us.ibm.com --- Comment #5 from Carl Love --- Created attachment 101221 --> https://bugs.kde.org/attachment.cgi?id=101221=edit fix for jm_int_isa_2_07. The none/tests/ppc64/jm_int_isa_2_07.stdout.exp, by convention, should have the big endian results. The current file contains the little endian results. By convention, the little endian result files have "-LE" appended to the expected output file name. This patch fixes the output in the none/tests/ppc64/jm_int_isa_2_07.stdout.exp file. The results of the regression test on pre Power 8 processors and Power 8 LE processors should not change. Please test the patch and see if the regression test results are as expected on your machine. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 361726] WARNING:unhandled syscall on ppc64 and amd64 (membarrier)
https://bugs.kde.org/show_bug.cgi?id=361726 Carl Lovechanged: What|Removed |Added CC||c...@us.ibm.com, ||will_schm...@vnet.ibm.com -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 361405] disInstr(ppc): unhandled instruction: 0xFF81010C
https://bugs.kde.org/show_bug.cgi?id=361405 Carl Lovechanged: What|Removed |Added CC||c...@us.ibm.com -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 109426] ppc: false positive in rt_sigaction
https://bugs.kde.org/show_bug.cgi?id=109426 Carl Lovechanged: What|Removed |Added CC||c...@us.ibm.com -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 352364] ppc64: --expensive-definedness-checks=yes is not quite working here
https://bugs.kde.org/show_bug.cgi?id=352364 Carl Lovechanged: What|Removed |Added CC||c...@us.ibm.com -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 322593] Power 8 code to implement Transactional support
https://bugs.kde.org/show_bug.cgi?id=322593 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 322593] Power 8 code to implement Transactional support
https://bugs.kde.org/show_bug.cgi?id=322593 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #2 from Carl Love --- This bugzilla was a place holder for the transactional memory support discussion. Bugzilla 346474 contains the patch for the PPC64 transacational memory support. The patch from Bugzilla 346474 was committed on April 22, 2015, VEX commit 3143, Valgrind commit 15134. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368416] Add tc06_two_races_xml.exp output for ppc64.
https://bugs.kde.org/show_bug.cgi?id=368416 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368416] Add tc06_two_races_xml.exp output for ppc64.
https://bugs.kde.org/show_bug.cgi?id=368416 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|CONFIRMED |RESOLVED --- Comment #6 from Carl Love --- Verified patch commit is OK using fresh pull of the upstream repository. It checks out fine. Closing -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368412] False positive result for altivec capability check
https://bugs.kde.org/show_bug.cgi?id=368412 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #7 from Carl Love --- Patch has been committed. Closing. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368416] Add tc06_two_races_xml.exp output for ppc64.
https://bugs.kde.org/show_bug.cgi?id=368416 Carl Lovechanged: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |CONFIRMED --- Comment #5 from Carl Love --- Patch from Will committed, commit 15956 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368461] mmapunmap test fails on ppc64
https://bugs.kde.org/show_bug.cgi?id=368461 --- Comment #5 from Carl Love--- committed the missing file massif/tests/mmapunmap.post.exp-ppc64 in commit 15955 Retested, issue is resolved. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #12 from Carl Love --- No issues have been seen with the ISA 3.0 support to date. Closing. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368461] mmapunmap test fails on ppc64
https://bugs.kde.org/show_bug.cgi?id=368461 Carl Lovechanged: What|Removed |Added Status|CONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #3 from Carl Love --- Patch committed, valgrind commit 15950 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368461] mmapunmap test fails on ppc64
https://bugs.kde.org/show_bug.cgi?id=368461 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368461] mmapunmap test fails on ppc64
https://bugs.kde.org/show_bug.cgi?id=368461 Carl Lovechanged: What|Removed |Added CC||will_schm...@vnet.ibm.com Ever confirmed|0 |1 Status|UNCONFIRMED |CONFIRMED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368461] mmapunmap test fails on ppc64
https://bugs.kde.org/show_bug.cgi?id=368461 --- Comment #1 from Carl Love--- Created attachment 100988 --> https://bugs.kde.org/attachment.cgi?id=100988=edit fix for mmapunmap test on ppc64 The attached patch fixes the post failure on ppc64. The patch was submitted by Will Schmidt Will post the patch to the developers mailing list for review as it touches arch independent files. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368461] New: mmapunmap test fails on ppc64
https://bugs.kde.org/show_bug.cgi?id=368461 Bug ID: 368461 Summary: mmapunmap test fails on ppc64 Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: general Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The test results in a post failure on ppc 64 machines Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368416] Add tc06_two_races_xml.exp output for ppc64.
https://bugs.kde.org/show_bug.cgi?id=368416 --- Comment #1 from Carl Love--- Created attachment 100975 --> https://bugs.kde.org/attachment.cgi?id=100975=edit Add tc06_two_races_xml.exp output for ppc64. The attached patch was submitted by Will Schmidt. I have reviewed and tested the patch. The patch fixes the helgrind/tests/tc06_two_races_xml test case on PPC64 I will post the patch to the developer's email list for additional review. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368416] New: Add tc06_two_races_xml.exp output for ppc64.
https://bugs.kde.org/show_bug.cgi?id=368416 Bug ID: 368416 Summary: Add tc06_two_races_xml.exp output for ppc64. Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: general Assignee: jsew...@acm.org Reporter: c...@us.ibm.com Add a tc06_two_races_xml exp output for ppc64. This differs from the existing .exp in that does not contain the pthread_create_WRK entry frame. The non-xml version of this test passes because there is a filter that eliminates the pthread_create_WRK entry from that output. That was introduced in r13983, which added a filter to scrub out pthread_create_WRK from all of the outputs, and updated the .exp files to match. The additional exp file added here covers that same condition for the xml version of this test. I'll note that I did look at the code in and around pthread_create_WRK, in conjunction with the debug and comments from r13983. It looks like the _WRK stack frame is being reused rather than stacked upon. I suspect some part of branch-and-relink-to-noredir is not behaving quite as expected. That said, this rather simple update to the exp is sufficient and is not hiding anything I think is critical... Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368412] New: False positive result for altivec capability check
https://bugs.kde.org/show_bug.cgi?id=368412 Bug ID: 368412 Summary: False positive result for altivec capability check Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: general Assignee: jsew...@acm.org Reporter: c...@us.ibm.com An earlier change introduced a think-o in the altivec capability check, allowing a false positive if the compiler supported altivec but the hardware did not. Reproducible: Always Steps to Reproduce: 1. Run "make regtest" on power 5 platform 2. 3. Actual Results: Altivec tests run and fail Expected Results: Should correctly detect that altivec support does not exist on the platform and not run the altivec tests -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 368412] False positive result for altivec capability check
https://bugs.kde.org/show_bug.cgi?id=368412 --- Comment #1 from Carl Love--- Created attachment 100973 --> https://bugs.kde.org/attachment.cgi?id=100973=edit Fix false positive check for altivec support on PPC machines The attached patch was submitted directly to me from Will Schmidt. I have reviewed and tested the patch. It looks fine. Will post patch to mailing list for community review as it touches the general configure.ac file. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 359767] Valgrind does not support the IBM POWER ISA 3.0 instructions
https://bugs.kde.org/show_bug.cgi?id=359767 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 359767] Valgrind does not support the IBM POWER ISA 3.0 instructions
https://bugs.kde.org/show_bug.cgi?id=359767 --- Comment #11 from Carl Love--- Created attachment 100641 --> https://bugs.kde.org/attachment.cgi?id=100641=edit regression test fixes for 32-bit mode Patches applied Valgrind commit 15938, VEX commit 3244. A few fixes for the 32-bit mode were added to the valgrind patch, see patch5-fix.diff, as part of the VEX commit 3244. Fix for instruction xscvdphp VEX commit 3245. The call to generate_store_FPRF( Ity_I32, value ); was changed to generate_store_FPRF( Ity_I16, value ); -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 365912] ppc64BE segfault during jm-insns test (RELRO)
https://bugs.kde.org/show_bug.cgi?id=365912 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #2 from Carl Love --- Patch committed Valgrind revision 15917. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 --- Comment #5 from Carl Love--- > --- Comment #4 from Julian Seward --- > (In reply to Carl Love from comment #1) > > Created attachment 99775 [details] > > Patch 5 of 5 to add VEX support for Power ISA 3.0 instructions > > I have a number of concerns here, but nothing that can't be relatively > easily fixed. They fall into 5 areas: > > [1] naming and possible duplication of new IROps > > [2] front end: duplication of IR trees (the IRExpr* vs IRTemp thing) > > [3] front end: generation of excessively verbose IR for some vector insns > > [4] misc other correctness comments/queries > > [5] various typos in comments > > > To go through them in order: > > > -- [1] naming and possible duplication of new IROps -- > > diff --git a/VEX/pub/libvex_ir.h b/VEX/pub/libvex_ir.h > + Iop_MulAddF128,// (A * B) + C > + Iop_MulSubF128,// (A * B) - C > + Iop_NegMulAddF128, // -((A * B) + C) > + Iop_NegMulSubF128, // -((A * B) + C) > Call these, respectively: MAddF128, MSubF128, NegMAddF128, > NegMSubF128, so as to be consistent with the 32/64 bit variants Renamed the Iops as requested > > > + Iop_ConvI64UtoF128, /* signed I64 -> F128 */ > + Iop_ConvI64StoF128, /* signed I64 -> F128 */ > + Iop_ConvF64toF128, /* F64 -> F128 */ > + Iop_ConvF128toF64, /* IRRoundingMode(I32) x F128 -> F64*/ > + Iop_ConvF128toF32, /* IRRoundingMode(I32) x F128 -> F32*/ > Remove the leading Conv (eg Iop_I64UtoF128), so as to make them > consistent with other conversion operations. > Renamed the Iops as requested > > + /* Conversion signed 32-bit value to signed BCD 128-bit */ > + Iop_I128StoBCD128, > + > + /* Conversion signed BCD 128-bit to signed 32-bit value */ > + Iop_BCD128toI128S, > The comments don't seem to match the names. Is the integer value > 32 bits or 128 bits? > fixed comments. The integer source/result is stored in an I128 value. > > + /* -- Vector to/from half conversion -- */ > + Iop_F16x4toF32x4, Iop_F32x4toF16x4, Iop_F64x2toF16x2, Iop_F16x2toF64x2, > You only need one lane specifier here, so as to be consistent with > other ops: > F16toF32x4, F32toF16x4, F64toF16x2, F16toF64x2 > and in fact the first two already seem to exist. Are these different? > > Renamed the Iops as requested, changed the code in guest_ppc_toIR.c was then changed to match the Iop arg type with the required changes in host_ppc_isel.c to handle setting up the src/dest registers for the backend to issue the instructions. > [2] front end: duplication of IR trees (the IRExpr* vs IRTemp thing) > > +static void putC ( IRExpr* e ) > > +static IRExpr * create_FPCC( IRExpr *NaN, IRExpr *inf, > + IRExpr *zero, IRExpr *norm, > + IRExpr *dnorm, IRExpr *pos, > + IRExpr *neg ) { > > +static IRExpr * create_C( IRExpr *NaN, IRExpr *zero, > + IRExpr *dnorm, IRExpr *pos, > + IRExpr *neg ) { > > These functions all use their input trees more than once and so will > duplicate them and the computations done by them. Please change them so > that the passed arguments are IRTemps instead. > > There may be more such functions -- I am not sure if this is all of > them. Fixed, changed the IRExpr to IRTemps in these two functions. exponent_compare() and fractional_part_compare() use IRExpr but the value is used once in the true and once in the false path of an if statement. I suspect there may be existing functions with this issue. It is something that needs to be addressed in a follow on cleanup patch. I have noticed that the formatting of comments through out the code is not consistent and would like to clean that up as well in a follow patch. > > > [3] front end: > generation of excessively verbose IR for some vector insns > > + case 28: // vctzb, Vector Count Trailing Zeros Byte > Too complex; use a vector IRop > > + case 29: // vctzh, Vector Count Trailing Zeros Halfword > Ditto > > + case 30: // vctzw, Vector Count Trailing Zeros Word > Ditto > > + case 31: // vctzd, Vector Count Trailing Zeros Halfword > Ditto > > For the above cases (28/29/30/31), make yourself a set of vector IROps > to do this: > Iop_Ctz{8x16, 16x8, 32x4} > See existing ops Iop_Clz8x16, Iop_Clz16x8, Iop_Clz32x4 as an example Created Iops Iop_Ctz8x16, Iop_Ctz16x8, Iop_Ctz32x4, Iop_Ctz64x2 and re-implemented the instructions using the new Iops rather then using the existing Iops. > > + case 0: // bcdctsq. (Decimal Convert to Signed Quadword VX-form) > + /* Check each of the nibbles for a valid digit 0 to 9 */ > + inv_flag[0] = newTemp( Ity_I1 ); > + assign( inv_flag[0], mkU1( 0 ) ); >
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 Carl Lovechanged: What|Removed |Added Attachment #99776|0 |1 is obsolete|| --- Comment #7 from Carl Love --- Created attachment 100293 --> https://bugs.kde.org/attachment.cgi?id=100293=edit Patch 5 of 5 to add testsuite support for Power ISA3.0, revised -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 Carl Lovechanged: What|Removed |Added Attachment #99775|0 |1 is obsolete|| --- Comment #6 from Carl Love --- Created attachment 100292 --> https://bugs.kde.org/attachment.cgi?id=100292=edit Patch 3 of 5 to add VEX support for the POWER ISA 3.0 instructions revised -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 Carl Lovechanged: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |CONFIRMED CC||will_schm...@vnet.ibm.com -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 --- Comment #2 from Carl Love--- Created attachment 99776 --> https://bugs.kde.org/attachment.cgi?id=99776=edit Patch5 of 5 to add testsuite support for Power ISA 3.0 instructions part 1 Testsuite patch I have only included the first part of the patch which contains the testsuite code changes and some of the expect files. The two expected output files are rather large, total size is 33MBytes. I don't think anyone is going to read them all. I can post them if wants to see all of the output. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 --- Comment #1 from Carl Love--- Created attachment 99775 --> https://bugs.kde.org/attachment.cgi?id=99775=edit Patch 5 of 5 to add VEX support for Power ISA 3.0 instructions -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364948] New: Add IBM ISA 3.0 support, patch set 5
https://bugs.kde.org/show_bug.cgi?id=364948 Bug ID: 364948 Summary: Add IBM ISA 3.0 support, patch set 5 Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The IBM ISA 3.0 has been released. This bugzilla is the fifth in a series of five bugzillas for adding the needed ISA 3.0 support to Valgrind. The series of bugzillas are: 359767, 361207, 362329, 363858. Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #13 from Carl Love --- Patches committed VEX commit 3222 valgrind commit 15896 The patches were tested on 64-bit Power 6, Power 7, Power 8 big endian and Power 8 little endian machines. The regression tests showed no new test failures on these systems. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added Attachment #99330|0 |1 is obsolete|| --- Comment #11 from Carl Love --- Created attachment 99734 --> https://bugs.kde.org/attachment.cgi?id=99734=edit Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions, part 3 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added Attachment #99329|0 |1 is obsolete|| --- Comment #10 from Carl Love --- Created attachment 99733 --> https://bugs.kde.org/attachment.cgi?id=99733=edit Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions, part 2 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added Attachment #99731|0 |1 is obsolete|| --- Comment #9 from Carl Love --- Created attachment 99732 --> https://bugs.kde.org/attachment.cgi?id=99732=edit Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions, part 1 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added Attachment #99327|0 |1 is obsolete|| --- Comment #8 from Carl Love --- Created attachment 99731 --> https://bugs.kde.org/attachment.cgi?id=99731=edit Patch 4 of 5 to add VEX support for the POWER ISA 3.0 instructions -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 --- Comment #7 from Carl Love--- I ran the perfomance tests comparing the source tree with patch 3 and the source tree with patch 4. The results were run for 10 repetitions and 5 repetitions. The results for the two are very consistent. The 10 repetition results are as follows: -- Running tests in perf -- -- bigcode1 -- bigcode1 valgrind-patch3:0.19s no: 2.1s (11.0x, -) me: 4.4s (23.0x, -) bigcode1 valgrind-patch4:0.19s no: 2.1s (10.9x, 1.0%) me: 4.3s (22.9x, 0.5%) -- bigcode2 -- bigcode2 valgrind-patch3:0.19s no: 4.7s (24.6x, -) me:10.7s (56.4x, -) bigcode2 valgrind-patch4:0.19s no: 4.7s (24.6x, 0.0%) me:10.7s (56.4x, 0.1%) -- bz2 -- bz2 valgrind-patch3:0.57s no: 3.4s ( 5.9x, -) me: 8.6s (15.1x, -) bz2 valgrind-patch4:0.57s no: 3.4s ( 6.0x, -0.9%) me: 8.6s (15.1x, -0.2%) -- fbench -- fbench valgrind-patch3:0.25s no: 1.7s ( 6.7x, -) me: 4.3s (17.3x, -) fbench valgrind-patch4:0.25s no: 1.7s ( 6.8x, -1.8%) me: 4.3s (17.3x, -0.2%) -- ffbench -- ffbench valgrind-patch3:0.19s no: 0.7s ( 3.6x, -) me: 1.8s ( 9.6x, -) ffbench valgrind-patch4:0.19s no: 0.7s ( 3.6x, 0.0%) me: 1.8s ( 9.6x, 0.5%) -- heap -- heap valgrind-patch3:0.25s no: 1.7s ( 6.9x, -) me: 7.5s (29.9x, -) heap valgrind-patch4:0.25s no: 1.7s ( 6.8x, 1.2%) me: 7.5s (29.8x, 0.4%) -- heap_pdb4 -- heap_pdb4 valgrind-patch3:0.29s no: 1.8s ( 6.3x, -) me:10.8s (37.2x, -) heap_pdb4 valgrind-patch4:0.29s no: 1.8s ( 6.3x, 0.0%) me:10.8s (37.3x, -0.1%) -- many-loss-records -- many-loss-records valgrind-patch3:0.03s no: 0.4s (13.3x, -) me: 1.6s (55.0x, -) many-loss-records valgrind-patch4:0.03s no: 0.4s (13.7x, -2.5%) me: 1.7s (55.3x, -0.6%) -- many-xpts -- many-xpts valgrind-patch3:0.05s no: 0.6s (11.4x, -) me: 2.2s (44.0x, -) many-xpts valgrind-patch4:0.05s no: 0.6s (11.4x, 0.0%) me: 2.2s (43.6x, 0.9%) -- memrw -- memrwvalgrind-patch3:0.05s no: 0.8s (17.0x, -) me: 1.9s (39.0x, -) memrwvalgrind-patch4:0.05s no: 0.8s (16.8x, 1.2%) me: 2.0s (39.2x, -0.5%) -- sarp -- sarp valgrind-patch3:0.02s no: 0.3s (16.0x, -) me: 2.5s (125.5x, -) sarp valgrind-patch4:0.02s no: 0.3s (16.0x, 0.0%) me: 2.5s (125.5x, 0.0%) -- tinycc -- tinycc valgrind-patch3:0.21s no: 2.3s (11.0x, -) me:10.1s (48.2x, -) tinycc valgrind-patch4:0.21s no: 2.3s (11.0x, 0.0%) me:10.3s (49.1x, -1.9%) -- Finished tests in perf -- == 12 programs, 48 timings = I investigated the second comment by running the requested test. After fixing a bug that was found found with some missing register support, it ran fine. After some private discussions with Julian, the is_BCDstring(), increment_BCDstring(), and the support for bcdctz., bcdctn., bcdcfz., bcdcfn., bcdsetsgn.instructions were reimplemented using clean helpers. The minor comments:. There is no change in the functions, putCR321 and putCR0. They were unswapped so there is no change in the patch. The duplicated code was replaced with a temp. The typos were fixed. Note, it was found that one of the instructions in the test suite was missing. The test suite was updated. The VEX support patch and test suite patch have been updated. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364728] Power PC, missing support for several HW registrs in get_otrack_shadow_offset_wrk()
https://bugs.kde.org/show_bug.cgi?id=364728 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #2 from Carl Love --- Committed revision 15895. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364728] Power PC, missing support for several HW registrs in get_otrack_shadow_offset_wrk()
https://bugs.kde.org/show_bug.cgi?id=364728 --- Comment #1 from Carl Love--- Created attachment 99724 --> https://bugs.kde.org/attachment.cgi?id=99724=edit Add missing register support -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 364728] New: Power PC, missing support for several HW registrs in get_otrack_shadow_offset_wrk()
https://bugs.kde.org/show_bug.cgi?id=364728 Bug ID: 364728 Summary: Power PC, missing support for several HW registrs in get_otrack_shadow_offset_wrk() Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The Hardware trasaction registers and a couple of other HW registers are not supported in get_otrack_shadow_offset_wrk(), specifically: NRADDR, NRADDR_GPR2, (REDIR_STACK, TFHAR, TEXASR, TEXASRU, TFIAR, PPR, PSPB When running valgrind --tool=memcheck --track-origins=yes --vex-iropt-level=0 ./test_isa_3_0 -i valgrind crashes with the message: MC_(get_otrack_shadow_offset)(ppc64)(off=1376,sz=8) Memcheck: mc_machine.c:332 (get_otrack_shadow_offset_wrk): the 'impossible' happened. Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362894] missing (broken) support for wbit field on mtfsfi instruction (ppc64)
https://bugs.kde.org/show_bug.cgi?id=362894 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|CONFIRMED |RESOLVED --- Comment #3 from Carl Love --- VEX commit 3221, updates VEX/priv/guest_ppc_toIR.c valgrind commit, 15892, updates the NEWS file. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362894] missing (broken) support for wbit field on mtfsfi instruction (ppc64)
https://bugs.kde.org/show_bug.cgi?id=362894 Carl Lovechanged: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |CONFIRMED --- Comment #2 from Carl Love --- Will, I reveiwed the patch and tested it. It looks fine. I will proceed with committing it. Changing status -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Carl Lovechanged: What|Removed |Added CC||will_schm...@vnet.ibm.com -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 --- Comment #4 from Carl Love--- Created attachment 99330 --> https://bugs.kde.org/attachment.cgi?id=99330=edit Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions, part 3 final part of the testsuite patch expected results. The vgtest file change is at the very end of this part. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 --- Comment #3 from Carl Love--- Created attachment 99329 --> https://bugs.kde.org/attachment.cgi?id=99329=edit Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions, part 2 Second part of the testsuite patch. More of the expected output. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 --- Comment #2 from Carl Love--- Created attachment 99328 --> https://bugs.kde.org/attachment.cgi?id=99328=edit Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions Patch 4 of 5 to add testsuite support for the POWER ISA 3.0 instructions This patch adds test suite support for the instructions added in the first patch. Note, I had to manually chop this patch into multiple pieces due to the limit on the size of an attachment. This part has the test_isa_3.0.c changes and the first part of the expected results. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 --- Comment #1 from Carl Love--- Created attachment 99327 --> https://bugs.kde.org/attachment.cgi?id=99327=edit Patch 4 of 5 to add VEX support for the POWER ISA 3.0 instructions Patch 4 of 5 to add VEX support for the POWER ISA 3.0 instructions This patch add support to emulate more of the ISA 3.0 instruction in Valgrind. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 363858] New: Add IBM ISA 3.0 support, patch set 4
https://bugs.kde.org/show_bug.cgi?id=363858 Bug ID: 363858 Summary: Add IBM ISA 3.0 support, patch set 4 Product: valgrind Version: 3.12 SVN Platform: unspecified OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The IBM ISA 3.0 has been released. This bugzilla is the fourth in a series of five bugzillas for adding the needed ISA 3.0 support to Valgrind. The series of bugzillas are: 359767, 361207, 362329. Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #9 from Carl Love --- Updated patch committed. Vex commit 3220 Valgrind commit 15890 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 Carl Lovechanged: What|Removed |Added Attachment #98666|0 |1 is obsolete|| --- Comment #6 from Carl Love --- Created attachment 99056 --> https://bugs.kde.org/attachment.cgi?id=99056=edit updated, 0001-Power-PC-Add-support-for-ISA-3.0-part-3.patch I like your idea for combining create_DCM_32() and create_DCM() so we don't have lots of similarly named functions. But, I am not too keen on passing a list of IROp's to the function as it isn't really obvious from the function name why it would need them. My preference would be to just pass the size of the expr to be created and then just setup the IROp's in the function. I think it is cleaner to the reader and a bit less error prone. Let the function make sure it generates 64 bit or 32 bit iops rather then the user messing up on one of the arguments. Also eliminates the need to verify the IROp's passed are all compatible with each other. I wasn't aware of the the issue with the back end generating code multiple times. So basically the rule of thumb should be: If you use a computed value multiple times, compute it into a temp not an expression. With the above two things in mind, I rewrote create_DCM() as follows: static IRExpr * create_DCM ( IRType size, IRTemp NaN, IRTemp inf, IRTemp zero, IRTemp dnorm, IRTemp pos) { /* This is a general function for creating the DCM for a 32-bit or 64-bit expression based on the passes size. */ IRTemp neg; IROp opAND, opOR, opSHL; vassert( ( size == Ity_I32 ) || ( size == Ity_I64 ) ); if ( size == Ity_I32 ) { opSHL = Iop_Shl32; opAND = Iop_And32; opOR = Iop_Or32; neg = newTemp( Ity_I32 ); } else { opSHL = Iop_Shl64; opAND = Iop_And64; opOR = Iop_Or64; neg = newTemp( Ity_I64 ); } assign( neg, unop( Iop_1Uto64, mkNOT1( unop( Iop_64to1, mkexpr ( pos ) ) ) ) ); return binop( opOR, binop( opSHL, mkexpr( NaN ), mkU8( 6 ) ), binop( opOR, binop( opOR, binop( opOR, binop( opSHL, binop( opAND, mkexpr( pos ), mkexpr( inf ) ), mkU8( 5 ) ), binop( opSHL, binop( opAND, mkexpr( neg ), mkexpr( inf ) ), mkU8( 4 ) ) ), binop( opOR, binop( opSHL, binop( opAND, mkexpr( pos ), mkexpr( zero ) ), mkU8( 3 ) ), binop( opSHL,
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 Carl Lovechanged: What|Removed |Added Attachment #98632|0 |1 is obsolete|| --- Comment #4 from Carl Love --- Created attachment 98666 --> https://bugs.kde.org/attachment.cgi?id=98666=edit Patch 3 of 5 to add VEX support for the POWER ISA 3.0 instructions Fixed declarations to use "house" type, int i; -> Int i; -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 --- Comment #3 from Carl Love--- Created attachment 98634 --> https://bugs.kde.org/attachment.cgi?id=98634=edit Patch 3 of 5 to add testsuite support for the POWER ISA 3.0 instructions, second half Add tests to the test_isa_3_0.c file for the instructions in the VEX patch. I manually cut the patch file in two as it exceeded the max attachment size. This is the second part of the patch file. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 --- Comment #2 from Carl Love--- Created attachment 98633 --> https://bugs.kde.org/attachment.cgi?id=98633=edit Patch 3 of 5 to add testsuite support for the POWER ISA 3.0 instructions Add tests to the test_isa_3_0.c file for the instructions in the VEX patch. I manually cut the patch file in two as it exceeded the max attachment size. This is the first part of the patch file. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 --- Comment #1 from Carl Love--- Created attachment 98632 --> https://bugs.kde.org/attachment.cgi?id=98632=edit Patch 3 of 5 to add VEX support for the POWER ISA 3.0 instructions Patch to add support for emulating the Power PC ISA 3.0 instructions: lxsd, lxssp, lxv, stxsd, stxssp, and stxv xscpsgnqp, xscmpoqp, xscmpuqp, xscmpexpqp, xststdcqp, xsabsqp, xsxexpqp, xsnabsqp, xsnegqp, xsxsigqp, xsiexpqp, xsxexpdp, xsxsigdp, xscmpexpdp, xststdcdp, xsiexpdp, xsxtdcsp, xvxexpdp, xvxexpsp, xvxsigdp, xvxsigsp, xviexpsp, xviexpdp, xvtstdcsp, xvtstdcdp instructions. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 362329] New: Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3
https://bugs.kde.org/show_bug.cgi?id=362329 Bug ID: 362329 Summary: Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3 Product: valgrind Version: 3.12 SVN Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: c...@us.ibm.com The IBM ISA 3.0 has been released. This bugzilla is the third in a series of five bugzillas for adding the needed ISA 3.0 support to Valgrind. The first bugzilla in the series is 359767. The second bugzilla in the series is 361207 Reproducible: Always -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360035] POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits
https://bugs.kde.org/show_bug.cgi?id=360035 Carl Lovechanged: What|Removed |Added Status|CONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #13 from Carl Love --- Patch committed VEX commit 3218 valgrind commit 15871 valgrind commit 15872 (updated the NEWS file) -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360035] POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits
https://bugs.kde.org/show_bug.cgi?id=360035 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 361207] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2
https://bugs.kde.org/show_bug.cgi?id=361207 Carl Lovechanged: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #7 from Carl Love --- Committed the VEX support in VEX commit 3217 Committed the valgrind support (test suite) in commit 15870 -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 Carl Lovechanged: What|Removed |Added Status|RESOLVED|CLOSED -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 Carl Lovechanged: What|Removed |Added Resolution|--- |FIXED Status|CONFIRMED |RESOLVED --- Comment #12 from Carl Love --- Patch applied. Valgrind commit 15864. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 Carl Lovechanged: What|Removed |Added Attachment #98450|0 |1 is obsolete|| --- Comment #11 from Carl Love --- Created attachment 98496 --> https://bugs.kde.org/attachment.cgi?id=98496=edit final patch update Final update to patch. Updated the comments to fix typos and improve the clarity of the comments. Will commit this version of the patch. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 --- Comment #10 from Carl Love--- Yes, there are typos in that comment which is causing confusion. > The comment tells there are 64 VSR registers of 64 bits. Should say 128-bits not 64 bits. > that 'however, these are not "real" floating point registers': is that > speaking about fp[0..31] Should say fp[32..63] > Finally, the last paragraph tells 'the 32 floating point registers (AKA > VSR[0] to VSR[31])' yea, the AKA confuses things. I removed "(AKA VSR[0] to VSR[31])" I also added a diagram that shows the register layout. Basically copied from the ISA document. That should help the reader to visualize the layout. > In the code that initialises low_offset and high_offset : for VG_BIGENDIAN, > the comment tells > that the 64-bits are stored as Little Endian. Are the values really stored as > little endian, even > on a big endian platform ? I think the comment confused things more then it should have. I was trying to describe where the 64-bit values were but I see how you interpreted it. The four 32-bit values are stored in little endian or big endian format no mixed/partial format. So, I changed the comment to state where the four 32-bit values map to the array indicies to remove the confusion. I will re-spin the patch, update it in this bugzilla and retest everything on the various platforms before committing the patch. Thanks for the help. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 Carl Lovechanged: What|Removed |Added Attachment #98449|0 |1 is obsolete|| --- Comment #8 from Carl Love --- Created attachment 98450 --> https://bugs.kde.org/attachment.cgi?id=98450=edit Secone update to patch to fix GDB issue, changed some comments Noticed a comment that needed a little work when I was verifying the correct patch was in the attachment. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 Carl Lovechanged: What|Removed |Added Attachment #98384|0 |1 is obsolete|| --- Comment #7 from Carl Love --- Created attachment 98449 --> https://bugs.kde.org/attachment.cgi?id=98449=edit Updated patch to fix GDB issue Attached the updated patch -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 Carl Lovechanged: What|Removed |Added Status|UNCONFIRMED |CONFIRMED Ever confirmed|0 |1 --- Comment #6 from Carl Love --- > * typo in power64-core.xml : typo: regect -> rejectFIXED > * powerpc-altivec64l-valgrind.xml : I am not sure to fully understand why we > have 2 new > includes for power64-core2-valgrind-s1.xml and power64-core2-valgrind-s1.xml, > but there was > no addition of power64-core2.xml after power-fpu.xml : normally, the s1 and > s2 files should be > similar in structure to the 'non shadow' register files. I see that the > power64-core2*xml files are > defining the shadow registers for e.g. pc/msr/cr while the equivalent non > shadow registers are > in power64-core.xml It is unclear to me why the shadow registers for these > cannot be defined > in files that are 'similar in structure' to the non shadow files. In power64-core.xml, there is a comment about why the GPRs and pc/msr/cr have to be in that file. In power64-core-valgrind-s*xml, I tried to explain why the definitions of the pc/msr/cr registers had to be moved to power64-core2-valgrind-s*xml but I guess the explanation wasn't clear. I reworked the comments in the power64-core-valgrind-s*xml files to try and make the explanation clearer. Obviously, I didn't get the message across the first time. I think the reworked comments are a lot better. See what you think. > * valgrind-low-ppc64.c : typos fpmap -> fp map lower lower -> lower psuedo -> > pseudo (twice this typo) remove final , after + { "vs31h", 10720, 64 }, > FIXED > * valgrind-low-ppc64.c : we have a bunch of lines that are (almost) > duplicated for big/little Good suggestion, I added two variables low_offset and high_offset and then set them using the ifdefs for big and little endian. That way we have the one copy of the code which uses low_offset and high_offset to index the correct 64-bits in the 128-bit array. The code is much cleaner and more compact. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360008] Contents of Power vr registers contents is not printed correctly when the --vgdb-shadow-registers=yes option is used.
https://bugs.kde.org/show_bug.cgi?id=360008 --- Comment #4 from Carl Love--- Created attachment 98384 --> https://bugs.kde.org/attachment.cgi?id=98384=edit proposed patch to fix issue Attached is a patch to deal with the issue. Turns out there are several issues. 1) there is a big Endian/ little Endian issue that was missed earlier. The patch fixes that. Once the Endian issue was fixed, then the vsx register definition file that Phillippe mentions was added. That requires adding the new registers to the register structure and the case statement to get fetch the register values from the guest state. Finally, the order GDB prints the real guest register contents and the order the shadow registers in was not consistent. Specifically, the HW register print order was: GPRs, Floating point registers, then the pc, msr, cr, lr, ctr, etc registers. However, the order GDB printed the shadow registers was: GPRs, pc, msr, cr, lr, ctr, etc, then the Floating point registers. The issue was the shadow register name and contents didn't line up. The register contents order matched the HW register print order. So initially the fp0s1 register value was printed with pcs1. The shadow register xml definition file for the GPRs and pc, msr, lr, etc had to be split into two files. The first file contains the GPRs. The second file contains the pc,msr, lr, etc. The second file with the shadow pc, msr, lr, etc. definitions was then included after the shadow floating point register xml file. This results in GDB printing the shadow register names in the same order as the HW registers and the register contents now align to the correct register name. Please review the patch and let me know if you have any suggested changes/fixes. Thanks. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 361207] Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2
https://bugs.kde.org/show_bug.cgi?id=361207 Carl Lovechanged: What|Removed |Added Attachment #98163|0 |1 is obsolete|| --- Comment #5 from Carl Love --- Created attachment 98295 --> https://bugs.kde.org/attachment.cgi?id=98295=edit Updated VEX support patch The patch was updated to address Julian's comments. > + binop( Iop_64HLtoV128, > + mkU64( 0x ), > + mkU64( 0x ) ) ) ); > The ppc back end knows how to generate a 128 bit all-ones-value into a > vector register. So > just replace all that with mkV128(0x) Done > My only concern is that it seems rather repetitive in places. I wonder if you > couldn't shorten > it up a bit by writing a few subroutines? The following functions were added and used in multiple places to make the code more readable. static inline IRExpr* mkXOr4_32( IRTemp t0, IRTemp t1, IRTemp t2, IRTemp t3) { return binop( Iop_Xor32, binop( Iop_Xor32, mkexpr( t0 ), mkexpr( t1 ) ), binop( Iop_Xor32, mkexpr( t2 ), mkexpr( t3 ) ) ); } static inline IRExpr* mkOr3_V128( IRTemp t0, IRTemp t1, IRTemp t2) { return binop( Iop_OrV128, mkexpr( t0 ), binop( Iop_OrV128, mkexpr( t1 ), mkexpr( t2 ) ) ); } static inline IRExpr* mkOr4_V128( IRTemp t0, IRTemp t1, IRTemp t2, IRTemp t3 ) { return binop( Iop_OrV128, binop( Iop_OrV128, mkexpr( t0 ), mkexpr( t1 ) ), binop( Iop_OrV128, mkexpr( t2 ), mkexpr( t3 ) ) ); } static inline IRExpr* mkOr4_V128_expr( IRExpr* t0, IRExpr* t1, IRExpr* t2, IRExpr* t3 ) { /* arguments are already expressions */ return binop( Iop_OrV128, binop( Iop_OrV128, ( t0 ), ( t1 ) ), binop( Iop_OrV128, ( t2 ), ( t3 ) ) ); } static IRExpr* extract_field_from_vector( IRTemp vB, IRExpr* index, UInt mask) { /* vB is a vector, extract bits starting at index to size of mask */ return unop( Iop_V128to64, binop( Iop_AndV128, binop( Iop_ShrV128, mkexpr( vB ), unop( Iop_64to8, binop( Iop_Mul64, index, mkU64( 8 ) ) ) ), binop( Iop_64HLtoV128, mkU64( 0x0 ), mkU64( mask ) ) ) ); } The updated patch is attached for additional review. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360035] POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits
https://bugs.kde.org/show_bug.cgi?id=360035 --- Comment #11 from Carl Love--- Created attachment 98192 --> https://bugs.kde.org/attachment.cgi?id=98192=edit Updated patch to fix BCD add/subtract vbit error The previous patch broke the vbit-test test. The issue is the Iop_BCDAdd and Iop_BCDSub pass the ps value down to the instruction generation code. The issue is the ps value is a constant passed in the triop() function call in function dis_av_bcd ( ), VEX/priv/guest_ppc_toIR.c. The vbit-test assumes that the arguments of the triop() are expressions so it can set the vbits for each of the arguments. However, the ps value is a constant so the test couldn't set the vbits for ps. The implementation of the BCD add and subtract instructions was changed to not pass the ps value, the vbit-test was updated to remove some no longer needed comments and code for the ps argument. The memcheck code was updated to handle the new implementation of the BCD add and subtract instructions. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360035] POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits
https://bugs.kde.org/show_bug.cgi?id=360035 --- Comment #10 from Carl Love--- The changes fix Valgrind from generating the incorrect vbit result when either of the first two V128 operands have an undefined bit. However, the vbits are not being set if one of the vbits from the third operand, I8, are set. The vbit-test picked this up when I ran the full regression test. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 360035] POWER PC instruction bcdadd and bcdsubtract generate result with non-zero shadow bits
https://bugs.kde.org/show_bug.cgi?id=360035 --- Comment #9 from Carl Love--- Not sure that we will see a lot of BCD instructions. They are somewhat specialized for financial applications. -- You are receiving this mail because: You are watching all bug changes.