Fixes reported issue BZ #346031.
Patch by Crestez Dan Leonard.
git-svn-id: svn://svn.valgrind.org/vex/trunk@3166
__asm__ __volatile__("rdhwr %0, $1\n\t" : "=r" (x) );
break;
+ case 31: /* x = CVMX_get_cycles() */
+ __asm__ __volatile__("rdhwr %0, $31\n\t" : "=r" (x) );
+ break;
+
default:
vassert(0);
break;
__asm__ __volatile__("rdhwr %0, $1\n\t" : "=r" (x) );
break;
+ case 31: /* x = CVMX_get_cycles() */
+ __asm__ __volatile__("rdhwr %0, $31\n\t" : "=r" (x) );
+ break;
+
default:
vassert(0);
break;
if (rd == 29) {
putIReg(rt, getULR());
#if defined(__mips__) && ((defined(__mips_isa_rev) && __mips_isa_rev >= 2))
- } else if (rd == 1) {
+ } else if (rd == 1
+ || (rd == 31
+ && VEX_MIPS_COMP_ID(archinfo->hwcaps)
+ == VEX_PRID_COMP_CAVIUM)) {
if (mode64) {
IRTemp val = newTemp(Ity_I64);
IRExpr** args = mkIRExprVec_2 (mkU64(rt), mkU64(rd));