--- /dev/null
+--- valgrind-3.6.1/coregrind/m_debuginfo/debuginfo.c.orig 2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/debuginfo.c 2011-08-03 01:18:33.724000500 +0200
+@@ -1958,6 +1958,14 @@
+ case Cop_Sub: return wL - wR;
+ case Cop_And: return wL & wR;
+ case Cop_Mul: return wL * wR;
++ case Cop_Shl: return wL << wR;
++ case Cop_Shr: return wL >> wR;
++ case Cop_Eq: return wL == wR ? 1 : 0;
++ case Cop_Ge: return (Word) wL >= (Word) wR ? 1 : 0;
++ case Cop_Gt: return (Word) wL > (Word) wR ? 1 : 0;
++ case Cop_Le: return (Word) wL <= (Word) wR ? 1 : 0;
++ case Cop_Lt: return (Word) wL < (Word) wR ? 1 : 0;
++ case Cop_Ne: return wL != wR ? 1 : 0;
+ default: goto unhandled;
+ }
+ /*NOTREACHED*/
+--- valgrind-3.6.1/coregrind/m_debuginfo/priv_storage.h.orig 2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/priv_storage.h 2011-08-03 01:09:29.536000499 +0200
+@@ -218,7 +218,15 @@
+ Cop_Add=0x321,
+ Cop_Sub,
+ Cop_And,
+- Cop_Mul
++ Cop_Mul,
++ Cop_Shl,
++ Cop_Shr,
++ Cop_Eq,
++ Cop_Ge,
++ Cop_Gt,
++ Cop_Le,
++ Cop_Lt,
++ Cop_Ne
+ }
+ CfiOp;
+
+--- valgrind-3.6.1/coregrind/m_debuginfo/readdwarf.c.orig 2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/readdwarf.c 2011-08-03 01:09:29.533000512 +0200
+@@ -2831,6 +2831,22 @@
+ op = Cop_And; opname = "and"; goto binop;
+ case DW_OP_mul:
+ op = Cop_Mul; opname = "mul"; goto binop;
++ case DW_OP_shl:
++ op = Cop_Shl; opname = "shl"; goto binop;
++ case DW_OP_shr:
++ op = Cop_Shr; opname = "shr"; goto binop;
++ case DW_OP_eq:
++ op = Cop_Eq; opname = "eq"; goto binop;
++ case DW_OP_ge:
++ op = Cop_Ge; opname = "ge"; goto binop;
++ case DW_OP_gt:
++ op = Cop_Gt; opname = "gt"; goto binop;
++ case DW_OP_le:
++ op = Cop_Le; opname = "le"; goto binop;
++ case DW_OP_lt:
++ op = Cop_Lt; opname = "lt"; goto binop;
++ case DW_OP_ne:
++ op = Cop_Ne; opname = "ne"; goto binop;
+ binop:
+ POP( ix );
+ POP( ix2 );
+--- valgrind-3.6.1/coregrind/m_debuginfo/storage.c.orig 2010-10-20 22:19:43.000000000 +0200
++++ valgrind-3.6.1/coregrind/m_debuginfo/storage.c 2011-08-03 01:09:29.535000503 +0200
+@@ -595,6 +595,14 @@
+ case Cop_Sub: VG_(printf)("-"); break;
+ case Cop_And: VG_(printf)("&"); break;
+ case Cop_Mul: VG_(printf)("*"); break;
++ case Cop_Shl: VG_(printf)("<<"); break;
++ case Cop_Shr: VG_(printf)(">>"); break;
++ case Cop_Eq: VG_(printf)("=="); break;
++ case Cop_Ge: VG_(printf)(">="); break;
++ case Cop_Gt: VG_(printf)(">"); break;
++ case Cop_Le: VG_(printf)("<="); break;
++ case Cop_Lt: VG_(printf)("<"); break;
++ case Cop_Ne: VG_(printf)("!="); break;
+ default: vg_assert(0);
+ }
+ }