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

            Bug ID: 379473
           Summary: MIPS: add support for rdhwr cycle counter register
           Product: valgrind
           Version: 3.12.0
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: vex
          Assignee: jsew...@acm.org
          Reporter: james...@cowgill.org.uk
  Target Milestone: ---

Running valgrind on an executable (n64 little endian) linked against openblas
gives:
vex mips->IR: unhandled instruction bytes: 0x3B 0x10 0x10 0x7C
==9377== valgrind: Unrecognised instruction at address 0x4aa6dd8.
==9377==    at 0x4AA6DD8: ??? (in /usr/lib/libopenblas_mipsp-r0.2.19.so)
==9377==    by 0x4AA6D98: ??? (in /usr/lib/libopenblas_mipsp-r0.2.19.so)
==9377== Your program just tried to execute an instruction that Valgrind
==9377== did not recognise.  There are two possible reasons for this.
==9377== 1. Your program has a bug and erroneously jumped to a non-code
==9377==    location.  If you are running Memcheck and you just saw a
==9377==    warning about a bad jump, it's probably your program's fault.
==9377== 2. The instruction is legitimate but Valgrind doesn't handle it,
==9377==    i.e. it's Valgrind's fault.  If you think this is the case or
==9377==    you are not sure, please let us know and we'll try to fix it.
==9377== Either way, Valgrind will now raise a SIGILL signal which will
==9377== probably kill your program.
==9377==
==9377== Process terminating with default action of signal 4 (SIGILL): dumping
core
==9377==  Illegal opcode at address 0x4AA6DD8
==9377==    at 0x4AA6DD8: ??? (in /usr/lib/libopenblas_mipsp-r0.2.19.so)
==9377==    by 0x4AA6D98: ??? (in /usr/lib/libopenblas_mipsp-r0.2.19.so)

This instruction is:
 1bedd8:       7c10103b        rdhwr   s0,hwr_cc

I see from the sources there is no support for reading the cycle counter using
rdhwr (rd == 2). Given that there is already support for reading the Cavium
specific count register, it would seem logical to add support for reading the
generic MIPS one.

I expect you want to implement reading the ccres register to go with this (rd
== 3). The ISA manual states that all R2 processors support these registers.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to