https://bugs.kde.org/show_bug.cgi?id=508933
Bug ID: 508933
Summary: ppc: Fix IROps implementation
Classification: Developer tools
Product: valgrind
Version First unspecified
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: vex
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
ppc: Fix IROps implementation
Running iropt-test identifies a few IROps for which the implementation
is not quite right. In other words: the expected result as computed by
the insn sequence implementing the IROp differs from the result as
obtained via constant folding. For example:
*** Incorrect result for operator MullU32
opnd 0: 00000001
opnd 1: 80000000
result fold: 0000000080000000
result nofold: ffffffff80000000
result expected: 0000000080000000
Affected IROps are
for ppc32: DivU32E, DivS32E
for ppc64be: DivS32, DivS32E, DivU32E, MullU32
for ppc64le: DivS32, DivS32E, DivU32E, MullU32
Steps to reproduce:
1) Apply this patch:
diff --git a/none/tests/iropt-test/main.c b/none/tests/iropt-test/main.c
index 64ad44d87..98f144bae 100644
--- a/none/tests/iropt-test/main.c
+++ b/none/tests/iropt-test/main.c
@@ -47,7 +47,7 @@ main(int argc, char *argv[])
{
// FIXME: temporarily until ppc and mips have been fixed
#if !defined(__s390x__) && !defined(__i386__) && !defined(__x86_64__)
- return 0;
+// return 0;
#endif
assert(sizeof(long long) == 8);
srand48(42L);
2) Reduild
3) Run:
perl tests/vg_regtest none/tests/iropt-test/iropt-test
--
You are receiving this mail because:
You are watching all bug changes.