https://bugs.kde.org/show_bug.cgi?id=508932

            Bug ID: 508932
           Summary: mips: 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: ---

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 MullU8
    opnd 0:          01
    opnd 1:          80
    result fold:     0080
    result nofold:   ff80
    result expected: 0080

Affected IROps are
for mips32: 16Sto64, 8Sto64, 8Uto64, CmpLE32U, Max32U, MullU16, MullU8, Not64
for mips64: CmpLE32U, Max32U, MullU16, MullU8

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.

Reply via email to